【发布时间】:2013-06-01 20:12:24
【问题描述】:
我试图了解为什么在我浏览虚拟目录时我的默认文档没有出现。如果我按照我应该能够的方式浏览该网站,我会得到:
但是,如果我将页面添加到 URL,它就会出现:
一位SO answer 建议删除所有默认文档(在 IIS 中),但真正的文档除外。我试过了(下图),但没有帮助。
为什么 IIS 在使用根 URL (http://localhost/SignalRChat) 时不提供该页面?
这是删除默认文档后 web.config 的相关部分:
<defaultDocument>
<files>
<remove value="default.aspx" />
<remove value="iisstart.htm" />
<remove value="index.html" />
<remove value="index.htm" />
<remove value="Default.asp" />
<remove value="Default.htm" />
<add value="ChatPage.cshtml" />
</files>
</defaultDocument>
这是处理程序部分:
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*."
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
【问题讨论】:
-
您想查看
<handlers>部分吗? -
如果我将 ChatPage.cshtml 的名称更改为 default.cshtml,它将自动显示。
-
你可以尝试使用
列表下的 选项而不是单个页面删除吗? -
那些
handlers是有原因的吗?因为那些ExtensionlessUrlHandler处理程序只是忽略了您的DefaultDocument配置。 -
@Edward 我今晚可以试试。
标签: asp.net .net asp.net-mvc-4 iis iis-8