Como dizer ao IIS7 para permitir o POST para um arquivo de texto (para resolver 405)?

5

Se eu quiser permitir HTTP POST para arquivos de texto *. txt (ou seja, estou tomando um exemplo do que poderia ser qualquer recurso estático normalmente acessível por GET).

O erro é:

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.

Como posso conseguir isso?

Plano de fundo : estou usando o apps.facebook.com para acessar meu aplicativo hospedado do facebook e o facebook envia o HTTP POST agora para o iFrame que hospeda meu aplicativo. Esse comportamento do Facebook existe há algum tempo, mas está sendo forçado agora. Por sua vez, isso me força a disponibilizar coisas para o verbo POST.

    
por John K 11.04.2011 / 19:10

4 respostas

1

Acredito que o IIS suporte POSTs na maioria dos tipos de extensão. Você está usando o IIS7 ou 7.5? Acabei de testar com um arquivo .txt no IIS7.5 e ele lida bem com um POST.

Gostaria de verificar em seu applicationHost.config (c: \ windows \ system32 \ inetsrv), procure a seção e verifique seu manipulador StaticFile, ou se você já tiver um manipulador para o seu tipo de extensão. O mesmo pode ser definido no seu arquivo web.config. Confirme se a propriedade verbos permite o POST.

    
por 11.04.2011 / 21:52
2

Estou executando o IIS7 e tive que ir para a pasta que queria postar no Gerenciador do IIS e, em seguida, passar para "Request Filtering" e adicionar "verbos", como post, get ..

Isso removerá o erro 405 ..

    
por 30.08.2012 / 14:54
2

Uma solução rápida, dependendo da limitação do acesso a aplicativos que exigem acesso de administrador, é renomear para um tipo de arquivo configurado adequadamente. Você pode, por exemplo, fornecer conteúdo estático como um arquivo aspx.

Substitua "file.txt" por "file.aspx" e pronto (se o aspx tiver permissão para manipular o POST, que deve ser por padrão).

    
por 16.02.2012 / 22:32
0

Eu tive problema semelhante. Nosso aplicativo estava tentando enviar solicitações POST para o arquivo json estático hospedado no IIS. Eu consertei atualizando o arquivo web.config:

<?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>
    
por 27.05.2015 / 14:43