7

If I want to allow HTTP POST to text files *.txt (i.e. I'm taking an example of what could be any static resource normally accessible by GET).

The error is:

Server Error

405 - HTTP verb used to access this page is not allowed. The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.

How can I accomplish this?

Background: I'm using apps.facebook.com to hit my hosted facebook app and facebook sends HTTP POST now through to the iFrame hosting my app. This facebook behaviour has been around for a while but it's being forced now. In turn this forces me to make stuff available to the POST verb.

John K
  • 1,673
  • 3
  • 16
  • 20

4 Answers4

4

A quick workaround, depending on how limited your access is to apps that require admin access, is to rename to a properly configured filetype. You can, for example, provide static content as an aspx file.

Replace "file.txt" with "file.aspx" and you're done (if aspx is allowed to handle POST, which it should be by default).

ruffin
  • 189
  • 1
  • 7
2

I believe that IIS supports POSTs on most extension types. Are you using IIS7 or 7.5? I just tested with a .txt file in IIS7.5 and it handles a POST just fine.

I would check in your applicationHost.config (c:\windows\system32\inetsrv), search for the section and check your StaticFile handler, or if you already have a handler for your extension type. The same may be set in your web.config file. Confirm that the verbs property allows for POST.

Scott Forsyth
  • 16,339
  • 3
  • 36
  • 55
2

I am running IIS7 and had to go to the folder I wanted to post inside the IIS Manager to and then go over to "Request Filtering" and you can add "verbs" like post, get..

This will remove the 405 error..

Andy
  • 21
  • 1
0

I had similar issue. Our application was trying to send POST requests to static json file hosted on IIS. I fixed it by updating web.config file:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <handlers>
            <add name="JSON" path="*.json" verb="GET,POST" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\asp.dll" resourceType="File" requireAccess="None" />
    </handlers>
        <security>
            <requestFiltering>
                <fileExtensions>
                    <add fileExtension=".json" allowed="true" />
                </fileExtensions>
                <verbs>
                    <add verb="POST" allowed="true" />
                </verbs>
            </requestFiltering>
        </security>
</system.webServer>
</configuration>