Servidor Windows 2012 R2/IIS 8.5
Em IIS > Sites > Default Website
Eu 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\rooms
e dentro desta pasta existem vários .dll
arquivos, pastas e um arquivo web.config
. O conteúdo do web.config
sã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 Document
no 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.5
e ASP.NET 4.5
estão sendo exibidos como (Installed)
, assim como ISAPI Extensions
e 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.