浏览器下载 ASP 应用程序而不是显示

浏览器下载 ASP 应用程序而不是显示

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.5ASP.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                        

当主机名为空时,意味着它将匹配任何内容 - 但是因为这两个条目首先捕获对本地主机的查询,所以它永远无法处理 http 类型的请求。

相关内容