Navegador baixando aplicativo ASP em vez de exibir

Navegador baixando aplicativo ASP em vez de exibir

Servidor Windows 2012 R2/IIS 8.5

Em IIS > Sites > Default WebsiteEu tenho um aplicativo (ASP), quando visito a URL do host local, um arquivo é baixado em vez da página ser exibida.

Os arquivos estão localizados em C:\inetpub\wwwroot\roomse dentro desta pasta existem vários .dllarquivos, pastas e um arquivo web.config. O conteúdo do web.configsão;

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" />
        <handlers accessPolicy="Read, Execute, Script">
            <remove name="ISAPI-dll" />
            <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" scriptProcessor="C:\inetpub\wwwroot\rooms\rooms.dll" resourceType="File" requireAccess="Execute" allowPathInfo="true" preCondition="bitness32" />
        </handlers>
        <defaultDocument enabled="true">
            <files>
                <add value="rooms.dll" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

Eu configurei Default Documentno IIS para o arquivo relevante .dll, é isso que está sendo baixado quando eu visitolocalhost/rooms

Reiniciei o servidor IIS e o próprio site algumas vezes. Existem outros sites hospedados no mesmo servidor e estão funcionando conforme o esperado e acessíveis por meio de um URL semelhante. Eu também tentei vários navegadores.

Eu verifiquei os recursos e funções do Windows e posso confirmar isso ASP.NET 3.5e ASP.NET 4.5estão sendo exibidos como (Installed), assim como ISAPI Extensionse ISAPI Filters.

Tenho muito pouca experiência com IIS ou ASP.

  • Por que o aplicativo está sendo baixado em vez de exibido?
  • Como posso começar a solucionar isso?

Responder1

Para nós era uma questão vinculativa. Se você abrir o IIS e clicar com o botão direito no site e observar as propriedades de ligação, ele listará todos os nomes e como tratará os arquivos.

Havia duas entradas que precisávamos excluir:

type                 host  port       binding
------------------------------------------------
net.msmq                              localhost*
msmq.formatname                       localhost*

A ligação restante que precisava ficar era:

type    host      port                 binding
------------------------------------------------
http              80                        

Quando o nome do host está em branco, significa que corresponderá a qualquer coisa - no entanto, como as duas entradas estavam lá, capturando consultas ao host local primeiro, ele nunca foi capaz de tratar a solicitação como tipo http.

informação relacionada