How to remove error messages - IIS7 - iis

I'm wondering how to remove the error messages IIS7 adds to the top of the page.
I have my own 500 and 404 error pages served.
Not needing the error pages I have deleted them, but I am still getting this on top of my page:
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable
Any ideas?

To prevent IIS7 hijacking your error pages, set existingResponse="PassThrough" in your httpErrors section in your web.config file. For example:
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>

You can also go into IIS manager --> Error Pages then click on the right on "Edit feature settings..." And set the option to "Detailed errors" then it will be your application that process the error and not IIS.

Just for addtional information I'll share what helped me:
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly">
</system.webServer>
In such setup I could see detailed errors when developing on my local machine, but they would not be shown to users when remote server is accessed from outside.
You could find more information regarding errorMode here.

Related

Configuring Coldfusion On IIS

I have to export a classic asp/asp.net 2.0 web site that uses also coldfusion 8, from Windows Server 2003 with IIS6 to Windows Server 2012 and IIS 8.
I got everything working except setting up coldfusion to work with IIS.
The pages using coldfusion have .cfm as an extension.
I tried to follow this link here but that did not work
http://www.adobe.com/devnet/coldfusion/articles/iis-configuration.html
When I try to add the handlers in IIS, I see a warning saying this site is in classic mode and I need to manage managed handlers directly in the config file.
I tried to add the handlers using appcmd like this:
appcmd set config /section:handlers /+[name='cfmHandler',path='*.cfm',verb='*',type='c:\coldfusion8\runtime\lib\wsconfig\jrun_iis6.dll',preCondition='integratedMode']
Then I added the Wildcard Script Map in IIS as per the link, this seems that it created and entry in the web.config of the site.
<system.webServer>
<handlers>
<add name="JWildCardHandler" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\ColdFusion8\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll" resourceType="File" requireAccess="None" preCondition="bitness32" />
</handlers>
</system.webServer>
When I try to browse to the web site, if the wildcard handler exists in the web.config, I get error 404 on any page, even the one that does not end with .cfm
I removed the wildcard and I now get the following error:
Handler "cfmHandler" has a bad module "ManagedPipelineHandler" in its module list
Most likely causes:
Managed handler is used; however, ASP.NET is not installed or is not installed completely.
There is a typographical error in the configuration for the handler module list.
During application initialization, either the application initialization feature has set skipManagedModules to true, or a rewrite rule is setting a URL that maps to a managed handler and is also setting SKIP_MANAGED_MODULES=1.
I tried to run the fix that some programmers mentioned in other questions, but did not help
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -i
I tried to add the handler in the web.config instead of doing it through appcmd but I got the same error.
<add name="cfmHandler" path="*.cfm" verb="*" type="c:\coldfusion8\runtime\lib\wsconfig\jrun_iis6.dll" preCondition="classicMode" />
I have been trying to get this to work for the last 3 days without luck.
All I need get done is to make any page that ends with .cfm handled by the coldfusion server. It's obviously the web site is old .NET and probably classisMode. I could not find simple step by step instructions other than the link above which did not work for me.
Thank you in advance

IIS - http Runtime Error

I had already published my site using the IIS Manager.
I successfully can access it with my PC but when my colleagues tried to access it, it says,
HTTP Runtime Error.
Is there something wrong in the config file? How come I can access it with no error? Can anyone help us with this?
http runtime error
Is not a lot to go by.
What do the windows event logs say?
What is the website, Asp.net or something else?
If it is asp.net, update this setting and post what error they see:
<?xml version="1.0"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>

How to see the detailed exception in WebAPI?

My AngularJS makes RESTful API calls to my ApiController.
Everything works fine in localhost, but returns a boring and frustrating {"message":"An error has occurred."} when testing on IIS Server.
I have made sure these things are in place. There is a good post in here.
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
<system.web>
<customErrors mode="Off"/>
</system.web>
On the IIS7, I go to Error Pages >> Edit Feature Settings >> Error Responses is now Detailed errors.
How can we see the detailed exception? Have I missed something else?

ASP pages in IIS using Localhost 401.3 Error do not have permission

I have just installed the IIS so I can view asp files in a browser but when I put the address in a browser as : http://localhost/index.asp I get an error.
The error shows this:
HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server.
I really need to get this sorted out, I would highly appreciate any advice on this.
My issue was around the identity used in the app pool. I changed the site's Authentication to "Application pool identity" as well as giving the directory the appropriate permissions.
OK, working from memory here as I am not in front of a Windows machine.
If you right click on your webroot folder /inetpub/wwwroot/ or the website directory you are working on open properties and select security, I think it is, you will see the list of users with their permissions for that folder. There is a section to add new users where you can add the IIS_IUSRS account (search from the list of users if you need to) which will be the default user used when anonymous authentication is enabled. Give this account the relevant permissions (read, write, execute) ensuring you apply to file and subfolders. Refresh the website in IIS and you should hopefully be good to go.
I had one folder not working (extracted from a zip file which came from an email from some kind of MS Sharepointy thing. Or something). The files were all marked with Windows Explorer -> Right Click -> Properties -> Advanced -> Encrypt contents to secure data. Unticking cured it.
In my case I had created an application in IIS 7 on Windows 7 using "Add Application" on the Default Web Site. I had to add the "users" account from the local machine and that got rid of the permissions error.
I had this happen to me and what I needed to do was apparently add a web.config file. Doesn't matter that it was just a PHP site, and that "Everyone" had full control. Until there was a basic Web.config - NO DICE!
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers accessPolicy="Read, Execute, Script" />
<defaultDocument>
<files>
<clear />
<add value="index.php" />
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="default.aspx" />
</files>
</defaultDocument>
<directoryBrowse enabled="false" />
</system.webServer>
</configuration>
Here, the set up process is explained in detail. You can follow the steps.
http://coldfusion-tip.blogspot.com/2013/10/you-do-not-have-permission-to-view-this.html

IIS 7 Not Serving Default Document

We have a problem occuring on some of our developer workstations: when visiting a URL without a filename (e.g. http://localhost/), IIS 7 returns a 404 error. Everyone is running Windows 7/IIS 7.5 and ASP.NET 4.0. The application pool is configured to use Classic pipeline mode.
Default documents are enabled, and default.aspx is in the default document list.
I enabled failed request tracing, and see this in the log:
OldHandlerName="", NewHandlerName="ExtensionlessUrl-ISAPI-4.0_64bit",
NewHandlerModules="IsapiModule",
NewHandlerScriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll", NewHandlerType=""
Later on, I see that this IsapiModule is rejecting the request:
ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="404",
HttpReason="Not Found", HttpSubStatus="0",
ErrorCode="The operation completed successfully. (0x0)", ConfigExceptionInfo=""
It looks like IIS thinks the ExtensionlessUrl-ISAPI-4.0-64bit should be handling the request. When I look at that module's configuration, it shows that it should be matching path *., so I'm confused why it is matching no path.
A Google search turns up this post on the IIS.net forums from 2005. Unfortunately, no solutions are offered, just an acknowledgement of the problem.
When I update my app pool to use integrated mode, the problem goes away. Unfortunately, it has to run in Classic mode.
What can I do to get IIS to server our default documents again?
It looks like Microsoft released an update that enables the ExtensionlessURL HTTP handler to work with extensionless URLs. Unfortunately, this breaks certain other handlers. In my case, the DefaultDocument handler under classic app pools. The solution is to remove the ExtensionlessURL handlers in our application's web.config:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrl-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrl-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrl-Integrated-4.0" />
</handlers>
</system.webServer>
I solved the problem with putting the "StaticFile" handler in HandlerMapping in front of "ExtensionlessUrlHandler-*"
I noticed when removing the managed .NET framework (4.0) from the application pool, it fixed the problem for me too!
We don't use .NET at all in our IIS environment!
I use the following rule in web.config URL Redirect as workaround to solve this:
<system.webServer>
<rewrite>
<rules>
<rule name="Default document rewrite" stopProcessing="true">
<match url="^(.+/)?$" />
<action type="Redirect" url="https://{HTTP_HOST}/default.aspx" />
</rule>
</rules>
</rewrite>
</system.webServer>
Changing the StaticFile order helped to fix the issue, when setting default document to a web site application in IIS, while the root website also had another default document.
Adding the DefaultDocument component to IIS in add/remove windows features and then inserting the name of my default script ( index.php) worked for me.

Resources