IIS7 Replication Configuration Settings - iis-7

I am trying to set up a web farm where IIS configuration settings are replicated between the 2 servers. I do not want to use a shared configuration as this presents another point of failure. I have both machines (WWW1 and WWW2) set up to use a configuration file on D:\IISConfig. With this done I manually copy the configruation files from WWW1 to WWW2 and WWW2 works just fine. I then took it one step further and added file replication to automatically push any changes on WWW1 to WWW2. Then I added an App Pool to WWW1. At this point I can also browse my website with no issues on WWW1. When I went to IIS7 on WWW2 , I could see the new app pool . . .- GREAT. I tried to browse the website on WWW2 and I get an error that shuts down the DefaultAppPool:
The Module DLL c:\Windows\System32\inetsrv\authsspi.dll failed to load. The data in this error . . .
Any ideas why this might be occuing and how to get arround it?
Thanks

Belongs on Serverfault.com?
I think that when you use the configuation file and path, it is pretty much the same as using a shared configuration.
I would check that you have exactly the same modules loaded as it sounds to me like you have a security module on one web server that is not on the other, the config file is telling it to load which is causing the server to fail.

I would use the shared configuration instead.
In my Windows 2008 cluster, I have IIS set to use the shared configuration where the configuration folder is set to a folder on the local server. Then I have that folder set up as a DFS share. That way the IIS changes are automatically replicated in the cluster and the server's don't have to talk to a remote server to get the config files. This has been working great for years.

I know this is an old question, but the actual issue here is that it failed to load an authentication module.
authsspi.dll is provided by adding 'Basic Authentication' as part of the Web Server role in Windows Server. I can see this being an issue if (like me) you're accidentally using Shared Configuration across 2 or more servers that don't have an identical Role configuration for IIS.

Related

How to host asp.net webapi project with the current build on IIS

I want to host my ASP.Net Web api project on IIS for local development. I have an angular UI that wants to access this API. So for this reason I don't want to run my ASP.Net project all the time, if it were running on IIS would be better. I read many articles but none of them seemed to resolve my problem.
I know how to publish my project and then host the published version of the current build but what I don't want to do is having to do a publish every time I build just to test my code.
If I am not mistaken there is an option for deploying a new version of my project with every build. Again I don't want it to be production ready, I only need it for local development to test my API.
When I was using the publish > host currently published version on IIS the application was running.
When I was configuring IIS to point to the application folder where the solution is found as well (that is what I saw in an article about configuring IIS) I got: "HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable."
The solution is:
Go to IIS Manager in windows
On the left hand side of the panel, right-click -> add new website
Add a Site name that you like
Set up a Physical path, that should point to your project folder (so not where your solution is but where your ASP.Net project is)
Add a unique port that number that you make sure you are not currently using
Add a host name, and register it in the C:\Windows\System32\drivers\etc\hosts file with your local ip address

Flex/Coldfusion Remoting issue. - 'Destination ColdFusion does not exist'

I'm trying to resolve a Flex remote object Coldfusion call. I'm getting the following error.
[MessingError message='Destination 'ColdFusion' either does not exist or the destination has no channels defined (and the application does not define any default channels.)']
When I access my CFC through a cfm page, they work. Due to the way the servers are configured, I'm having issues setting up flex with a coldfusion service when I create a new project because I'm developing on a machine, but have to push everything to the server where CF is located. I'm also wondering if the way CF is setup may be an issue. The company is running Coldfusion from the c:\inetpub directory with IIS and out of the same webroot directory they are running WordPress/MySQL (6 WP sites to be exact). Any suggestions would be appreciated.
I will also add that when I create the flex project I can not set ColdFusion as the web server whether local (1.This machine doesn't run a local instance due to office permissions) and 2.) They don't have the J2EE setup.
The first thing I would check is what you get when you go to: http://www.domain.com/flex2gateway. That should give you a blank page, but if you get anything else (such as a 404) the flex gateway isn't running.
The other thing to make sure is that you set your services compiler argument on flash builder to the coldfusion services-config.xml file in the WEB-INF/flex directory.
-services c:/Coldfusion/wwwroot/WEB-INF/flex/services-config.xml

HTTP Error 503, the service is unavailable

I'm really new to setting up web servers in general. I've got IIS 8 on Windows 8, and I'm trying to set up a little site locally, while doing some development. In IIS I choose Add Site, give a name, points to a location where I have a index.html file (I've tried different locations, latest in a c:\inetpub\wwwroot\test -folder) and otherwise use all default settings. However, when I try to browse to localhost I get
HTTP Error 503. The service is unavailable.
I've verified the pool is started, and I've given IIS_IUSRS Full Control on the target folder
I've search around but not found anything that solved my issue, and there's nothing helpfull in the EventLog or in the C:\Windows\System32\LogFiles\HTTPERR folder
Could anyone tell me what's wrong?
It could be that the user identity is outdated, especially if you've tried starting a stopped app pool and the next request again fails.
In IIS, go to the Application Pools under the Server, then find the correct Application Pool for your web site, and click on it. On the Advanced Settings menu to the right, select Identity and change it and enter new user and password. Click on your Application Pool again, and select Recycle to restart it.
You can also try looking at the error message in Event Viewer, under Windows Logs, Application, Details tab.
Other answers are fine. But in my case, I was working on a Windows box that already was running some old IIS, IISExpress or any other web site. What happened is urls ACLs where reserved somehow in the system. So, you might want to check this.
Here is the console command to dump all URL acls:
netsh http show urlacl
Check what's returned here, and if anything matches the url you are testing, here is the command to delete one URL acl (for example):
netsh http delete urlacl url=http://localhost:2018/
(beware to carefully note what you do here in case it was not related to the original problem)
In my case the problem was the DefaultAppPool. I changed the "Load User Profile" to false and now it works. However, I don't know if there are side effects to this.
Further reading on setting the Load User Profile option: What exactly happens when I set LoadUserProfile of IIS pool?
Check your application's respective Application Framework Pool - it could be stopped. If it is, start it and check again.
If you're still experiencing issues you can also check out Event Viewer to find the cause of that error in order to troubleshoot more.
If the app pool is running under some specific user identity, then go to the advanced settings and update the username and password again to ensure they are correct.
If the app pool immediately stops after you start it and your event log shows:
The worker process for application pool 'APP_POOL_NAME' encountered an
error 'Cannot read configuration file ' trying to read configuration
data from file '\?\', line number '0'. The data field contains
the error code.
... you may experiencing a bug that was apparently introduced in the Windows 10 Fall Creators Update and/or .Net Framework v4.7.1. It can be resolved via the following workaround steps, which are from this answer to the related question Cannot read configuration file ' trying to read configuration data from file '\\?\<EMPTY>', line number '0'.
Go to the drive your IIS is installed on, eg. C:\inetpub\temp\appPools\
Delete the directory (or virtual directory) with the same name as your app pool.
Recycle/Start your app pool again.
I have reported this bug to Microsoft by creating the following issue on the dotnet GitHub repo: After installing 4.7.1, IIS AppPool stops with "Cannot read configuration file".
EDIT
Microsoft responded that this is a known issue with the Windows setup process for the Fall Creators Update and was documented in KB 4050891, Web applications return HTTP Error 503 and WAS event 5189 on Windows 10 Version 1709 (Fall Creators Update). That article provides the following workaround procedure, which is similar to the one above. However, note that it will recycle all app pools regardless of whether they are affected by the issue.
Open a Windows PowerShell window by using the Run as administrator
option.
Run the following commands:
Stop-Service -Force WAS
Remove-Item -Recurse -Force C:\inetpub\temp\appPools\*
Start-Service W3SVC
Or if none of the current solutions work, look in your website's directory for a file called app_offline.htm. That basically tells IIS that your site is unavailable and to show this page instead.
To fix it, either delete it or rename it to app_offline.htm.bak.
In my case, I added it while showing a colleague how to use that to prevent traffic to the site temporarily and then forgot that I did that on my box. Sigh.
Start by looking in Event Viewer, either under the System or the Application log.
In my case the problem was that no worker process could be started for the App Pool because its configuration file couldn't be read - I had included an extra '.' at the end of its name.
I resolved this issue by removing a URL reservation that matched my app directory in IIS. I had a similar (definitely not the same) issue as outlined in this article:
A Not So Common Root Cause for 503 Service Unavailable
It is possible that your domain requires the account used for running the AppPool to have batch logon rights. In which case you will see this same error message. The way you can tell if that is the case, is by looking at the System events in the Event Viewer. There should be an event saying that the account being used with the App Pool has either 'the wrong password or does not have batch logon rights'.
This is why developers quite often use IIS Express on their development machine, since it by passes the batch logon rights issue.
I ran into the same issue, but it was an issue with the actual site settings in IIS.
Select Advanced Settings... for your site/application and then look at the Enabled Protocols value. For whatever reson the value was blank for my site and caused the following error:
HTTP Error 503. The service is unavailable.
The fix was to add in http and select OK. The site was then functional again.
For my case, My Default Application Pool was offline.
To troubleshoot the problem, I checked the IIS logs located in C:\Windows\System32\LogFile\HTTPERR. Scroll down to the most recent error logs, this will show you problems with IIS if any.
My Error was "503 1 AppOffline DefaultPool"
Solution
Open IIS Manager
Click on Application Pools, this lists all application pool to your right.
Check if the application pools hosting your api or site has a stop sign on it. If so, right click the application pool and click start.
Try again to access your service from the client
Check Event Viewer - Windows - Application. If there is a red Error line made from IIS-W3SVC-WP and the message is like The Module DLL C:\Windows\system32\inetsrv\rewrite.dll failed to load. The data is the error. then you are missing some Windows Setup features.
In Windows Server 2012 go to Server Manager, Add Roles and Features, Web Server (IIS) and add the matching feature. Usually, most of the Application Development section is installed. Here is a complete list of IIS features and their associated DLL to help in diagnosis.
After going through a few iterations of that I ended on the error message above regarding "rewrite.dll". This led to a direct download and install of Microsoft URL Rewrite tool. Finally all websites came to life.
Our server ran out of disk space on Sunday afternoon which led to an application suddenly failing and returning HTTP error 502. The logs were empty so it had to be something that was occurring before IIS even did anything.
A swift look at the event viewer(WIN+R > eventvwr) exposed the issue.
It's a good idea to filter out the output of the System and Application windows to WAS since it can get pretty verbose in there.
The application depended on another one which was disabled. Therefore keep in mind an application can go down indirectly if one of it's dependent processes has gone down. We simply re-enabled the .NET application pool and our other application started running normally again.
If you have IIS URL Rewriting installed it could be to do with that. I suffered issues after a Windows 10 Update.
This StackOverflow post helped me.
Go to Windows Control Panel > Programs and Features > IIS URL Rewrite Module 2 > Repair.
i see this error after install url rewrite module i try to install previous version of it from:
https://www.microsoft.com/en-us/download/details.aspx?id=7435
it fixed my error
In my case, the problem was that another application was using the port that I had bound to my web site.
I found it by running the following command from a command line, which lists all of the listening ports and the executable involved:
netstat -b
If you have McAfee HIPS and if you see the following error in event viewer application log:
The Module DLL C:\Windows\System32\inetsrv\HipIISEngineStub.dll failed to load.
The data is the error.
Then this workaround on McAfee.com resolved the issue in my case.
Quote from the page:
Click Start, Run, type explorer and click OK.
Navigate to: %windir%\system32\inetsrv\config
Open the file applicationHost.config as Administrator for editing in Notepad.
Edit the <globalModules> section and remove the following line:
<add name="MfeEngine" image="%windir%\System32\inetsrv\HipIISEngineStub.dll" />
Edit the <modules> section and remove the following line:
<add name="MfeEngine" />
After you have finished editing the applicationHost.config file, save the file, then restart the IIS server using iisreset or by restarting the system.
Actually, in my case https://localhost was working, but http://localhost gave a HTTP 503 Internal server error. Changing the Binding of Default Web Site in IIS to use the hostname localhost instead of a blank host name.
tname for http binding
This could also happen if any recent installs or updates happened with .NET framework and/or ASP.NET. If you are unsure of what happened recently and if all your apps use ASP.NET version 4, you can try reset them by running the following commands in command prompt in administrator mode.
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
aspnet_regiis -i
This makes sure to install or reinstall ASP.NET 4 and updates existing applications to use ASP.NET 4 version of the app pool. It updates both IIS Classic and Integrated mode handlers and script mappings in the IIS metabase. It also recreates ASP.NET v4.0 and ASP.NET v4.0 Classic app pools, and sets .NET framework 4 to DefaultAppPool and Classic .NET app pools.
I changed the port from 80 to 8080, that's why this error occur. I write localhost/ in search bar then this error occur. My problem is resolved by writing localhost:8080/ in the search then local host open.
This happened to me on a server on our intranet. After browsing through blog posts and Windows logs, it turned out that a few days before Christmas 2015 (related to a Windows Update?) my web site application pool wanted to create a config file in folder c:\inetpub\temp\appPools, but access to this folder was restricted. This caused the application pool to be disabled.
After adding Full control to Everyone on this temp folder, I restarted the Windows Process Activation Service and everything went online again.
If I'd been a little more elegant, it would probably had been enough to grant the AppPool user full control to the folder, but I never seem to remember how the app pool name and app pool user relates to eachother...
Same thing with IIS Express 10.0 after upgrading Windows 7 to Windows 10.
Solution: go to IIS and enable all disabled websites and reinstall ASP.NET Core.
Also check the address bar and make sure the page is in the right location.
This error can be returned instead of the 404 (Page not found). In my case, it was a bad link on the page that didn't have a subfolder included.
I was having this problem when cleaning up my IIS on dev machine, and I had somehow created a virtual folder for a subfolder of my actual development web that I couldn't clear and was creating conflicts.
To clear it I had to use
C:\Windows\System32\inetsrv\appcmd.exe list vdir
and then individually remove the problem virtual directories using
C:\Windows\System32\inetsrv\appcmd.exe delete app /app.name:"Default Web Site"/{name of virtual directory}
For me the solution is to change Enable 32-bit Applications to False
None of the answers worked for me. So I'd like to share what I found after hours of research..
Keep seeing this message from event logs: The Module DLL C:\Windows\system32\RpcProxy\RpcProxy.dll failed to load. The data is the error. Turns out that dll is 64bit and cannot be loaded into 32bit process.
You can also try the following.
Right-click on the site and 'Basic Settings...'
Click on 'Connect As...'
Click on Specific User and give the new credentials.
Now it should work.
In my case, I had to change my userPass of network because company policies. So, you need to edit your AppPool:
click on Application Pools. Select your pool, 'advanced Settings...' go to 'Process Model' click on 'Identity' and Click on Specific User and give the new credentials.
This might be because of number of connections to the database. I had such a situation and so, wrote a de-constructor and killed db open connection and it resolved.
I had the same problem and found it was caused by permission problems creating the user profile in C:\Users. I gave ApplicationPoolIdentity full permissions to the C:\Users folder, started the site and everything worked, the profile must have been created properly, and my site worked as it should. I then removed access to C:\Users from ApplicationPoolIdentity.
Site wont start on local using ApplicationPoolIdentity, only when using NetworkService: "HTTP Error 503. The service is unavailable."

Errors deploying ASP.NET project to remote host

I have a asp.net project that is working very well on my machine (on localhost) ...
But when I put it on a real host (put it online) a faced a problem ....
I got this error :
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Could not load type 'AWP_Project.Default'.
Source Error:
Line 1: <%# Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AWP_Project.Default" %>
Line 2:
Line 3:
there is a problem in the first line of this page (and every other page when I try it)
note : my project name is AWP_Project
can anybody helps my please ???
A common "pitfall" when it comes to moving your (compiled or not) project to your web host from your local machine is that the web host may not have the same configuration as your project/local/development machine.
make sure you have all the assemblies in your /bin folder
if you somehow created assemblies (dlls) for each file, then make sure all of them are copied to your web host
Your web host will (likely) have different security settings than your own machine while you are debugging. You're working on full trust locally/in Visual Studio, while most, if not all web hosts will likely be using medium trust. So a good rule of thumb while developing in Visual Studio is to set your web.config to medium trust to avoid pitfalls "at the last moment" - particularly if you don't have a dedicated machine at your web host.
just because you have .Net 4 on your machine, doesn't automatically mean your web host has it. You can bin deploy the assemblies you need - in VS 2010 right click your project and select "Add Deployable Dependencies" - this will add all the necessary dlls you need in your /bin folder. Yes, you will likely not need all of them, but unless/until you're fairly comfortable in choosing which one should or shouldn't be deployed, you'll have to trust Visual Studio....
I'm hesitant to add this, but still - ask your web host what verison of ASP.Net/.Net Framework they support. It sounds funny but trust me, I'm hosted on one of the largest and well known/trusted web hosts out there and to this day, I have to contact support (but their support is "fanatical" - clue to who it is) to have my web site/s set to ASP.Net 4 (they support it but an extra manual config is needed by their personnel).
hth
Try to create a virtual directory/website on your remote host and upload to root of that virtual directory via copy web site menu or publish website.
Often, your app doesn't work if you upload to a folder only. you should copy to the root of virtual directory or create a virtual dir that refer to your folder.
Please check this url link: Cannot use asp classes in app code/bin/web service
Hope this help

Can't access localhost/iis after installing Oracle and loopback adaptor

Recently I installed Oracle and the required Microsoft Loopback Adaptor, which worked fine. However, this seems to have screwed up IIS (or at least its interaction with Visual Studio) somehow. I can't connect to localhost or 127.0.0.1 anymore, and I can't even open a web project in Visual Studio 2008 (which used to work fine), getting the error "The local IIS URL http://localhost/MyProject specified for the Web project MyProject has not been configured. In order to open this project the virtual directory needs to be configured. Would you like to create this directory now?" I click yes, then it gives an error that it "could not find the server http://localhost on the current machine".
IIS is running and I can connect to the default IIS website and other contents of inetput/wwwroot on localhost:1122.
I tried to disable the loopback adaptor and comment out the line I needed to add to hosts to get Oracle working, and while this has stopped Oracle from working, it hasn't helped with IIS/localhost.
edit: this turned out to be fixed by restoring the project from a backup, so it must have been an issue with the project itself of some sort.
I am guessing it's a problem with the loopback adaptor. You might have to restore your Connection settings properly. Check whether the loopback adaptor is properly disabled and whether Connection settings are correct from Control Panel->Network Connections.
Edit:
Also it would be better to restart the system after you have made all the necessary changes in the settings.
You could configure your local IIS to listen on a different port. Right click Default website, tab Web site, then Advanced. Add for example 1234 as a TCP port.
Then you can connect like http://localhost:1234/YourProject
You can open the website in Visual Studio from the file system, and specify the new URL in Project -> Property Pages -> Start Options -> Use custom server.
Ok, I finally managed to get this working by deleting the project and restoring from a backup. I guess the project configuration had somehow become screwed up in such a way as to cause the error I got, rather than there being a problem with IIS itself. Sorry for the false alarm.
Something similar happened to me today on Windows XP and IIS 5.whatever-it-is. The problem is that a tool I installed had created some Virtual Directories without an Application Name under the Default Web Site.
The solution was to open up the IIS snap-in, right-click and choose Properties for the offending virtual directories, and make up an "Application name" under the "Virtual Directory" tab of the Properties dialog that pops up. It didn't matter what I named it, as long as there was no virtual directory under the Default Web Site with a blank application name.

Resources