Eu tenho um aplicativo da Web em execução no IIS 7 no Windows Server 2008 R2 (edição Datacenter) e criado usando o Visual Studio 2010. Quando implantei o projeto do site em meu servidor IIS local ou no servidor IIS de produção hospedado em um VPS de serviço de hospedagem , o API Controller pode ser acessado via /api/notifications/
, que é feito por meio de uma chamada AJAX de uma página da web. O problema é que, em uma configuração idêntica na instância do Amazon EC2, nenhum dos API Controllers funciona, todos resultam em uma resposta 404 não encontrada. Verifiquei se a mesma versão do .NET framework está instalada em todos os lugares, se o IIS está executando os mesmos mapeamentos de manipulador, módulos, filtros ISAPI, filtragem de solicitações e configurações ASP são todos idênticos. Executou o rastreamento de solicitação com falha na instância do EC2 e não obteve erros relacionados ao asp. Tudo está atualizado. Eu tentei adicionar:
<modules runAllManagedModulesForAllRequests="true" />
e também tentei adicionar:
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*"
type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified"
requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
Para os locais apropriados no arquivo web.config e ainda sem controladores de API. Normalmente, o site é implantado na pasta "wwwroot" e todo o resto funciona, então eu também tentei implantar em um diretório virtual criando um aplicativo e acessar /Test/api/notifications/
ainda resulta em um 404 (enquanto eu posso acessar o resto do site em /Test/
).
Eu tentei registrar novamente a estrutura por meio deste post: link
Verifiquei se "Permitir extensões de nome de arquivo não listado" estava marcada na configuração do IIS.
Alguma idéia de por que isso não está funcionando na instância do EC2?