How to Resolve an HTTP 405 Resource not allowed Error in IIS
Symptoms
When attempting to POST to a web page in Internet Information Services (IIS) 5.1 under Windows 2000 (Win2k) or Windows XP, you may receive the following error:
The page cannot be displayed The page you are looking for cannot be displayed because the page address is incorrect. -------------------------------------------------------------------------------- Please try the following: If you typed the page address in the Address bar, check that it is entered correctly. Open the 127.0.0.1 home page and then look for links to the information you want. HTTP 405 - Resource not allowed Internet Information Services -------------------------------------------------------------------------------- Technical Information (for support personnel) More information: Microsoft Support
The code in the sample page that was posted might have been:
<!-- test.html EXAMPLE --> <html> <head><title>Test Post</title> </head> <body> <form method="post" action="test.html"> <input type="submit"> </form> </body></html>
Cause
The file type is not registered in the IIS script map settings (e.g. .html or .htm). IIS 5.1 only allows HTTP requests of type to GET to unmapped files. HTTP requests of type POST, HEAD, and all others are responded to with a 405 resource not allowed error.
As a security note, you should always remove unused script mappings. This is the default behavior of IIS 6, which will only serve named extensions and refuse all others.
Resolution
Add a script map for the extension. A script map associates a particular file type with a given script module. The web server runs the module on the given file and sends the output to the browser, instead of sending the file directly to the browser.
- Go to "Control Panel"-"Administrative Tools"-"Internet Information Services".
- Expand the tree to "COMPUTERNAME"-"Web Sites"-"Default Web Site".
- Right-click on "Default Web Site" and select "Properties". (Alternately, select "Default Web Site" and press Alt+Enter.)
- Select the "Home Directory" tab.
- Click the "Configuration" button.
- From the "Mappings" tab, select the "Add" button.
- Click the "Browse..." button, choose "Dynamic Link Libraries *.dll" from the "Files of Type" dropdown, and select c:\WINDOWS\System32\inetsrv\asp.dll.
- Type ".html" (without quotes) in the "Extension" box.
- Select the "Limit to:" radio button, and type in "GET, POST" (without quotes) in the box next to it.
- Click the "OK" button and close all the dialogs. (If the "OK" button is greyed out, then make sure all the entries are correct and try clicking in the file name box.)
See the screen shot below. You must adjust the above instructions to your particular OS, web site configuration, and file type. You can associate the file type with a different script engine besides asp.dll, which is the ASP 3.0 script engine. There is no need to give IWAM_COMPUTERNAME permission to the file, only IUSR_COMPUTERNAME needs NTFS read and execute permission.
Screen Shot
More Information
Applies to
Internet Information Services (IIS) 5.1
Windows XP
Windows 2000
Links
- Microsoft Knowledge Base Article - 238461 - Error Message: 405 Method Not Allowed when using FrontPage 2000 Server Extensions from Microsoft or Microsoft Office 2000 Server Extensions
- Troubleshooting Common IIS Errors
- Microsoft Advanced Search - Search for "HTTP 405 - Resource not allowed"
Disclaimer: This content is provided as-is. The information may be incorrect.