Windows Server 2012 R2 / IIS 8.5
У IIS > Sites > Default Website
меня есть приложение (ASP), и когда я захожу на URL-адрес локального хоста, вместо отображения страницы загружается файл.
Файлы расположены в C:\inetpub\wwwroot\rooms
папке , а внутри нее находятся различные .dll
файлы, папки и web.config
. Содержимое папки web.config
следующее:
<?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>
Я установил Default Document
в IIS соответствующий .dll
файл, вот что загружается, когда я захожуlocalhost/rooms
Я перезапускал сервер IIS и сам сайт несколько раз. На том же сервере размещены и другие сайты, и они работают как положено и доступны по похожему URL. Я также пробовал разные браузеры.
Я проверил функции и роли Windows и могу подтвердить, что ASP.NET 3.5
и ASP.NET 4.5
отображаются как (Installed)
, как ISAPI Extensions
и ISAPI Filters
.
У меня очень мало опыта работы с IIS или ASP.
- Почему приложение загружается, а не отображается?
- Как мне начать устранение этой неполадки?
решение1
Для нас это была проблема привязки. Если вы откроете IIS, щелкните правой кнопкой мыши по веб-сайту и посмотрите свойства привязки, то он выведет список всех имен и то, как он будет обрабатывать файлы.
Нам нужно было удалить две записи:
type host port binding
------------------------------------------------
net.msmq localhost*
msmq.formatname localhost*
Оставшаяся часть привязки, которую необходимо было оставить, это:
type host port binding
------------------------------------------------
http 80
Если имя хоста пустое, это означает, что оно будет соответствовать чему угодно, однако, поскольку там были две записи, перехватывающие сначала запросы к localhost, он никогда не мог обработать запрос как тип http.