我正在使用Umbraco开发一个Web应用程序。我创建了一个名为PageNotFound的内容,并且在umbracoSettings.config文件的errors部分中,我将该节点的id设置为404 error404。问题是,在IIS 7中,IIS总是在web.config中查找HttpErrors部分,并且不关注umbracoSettings.config。
我该怎么办?
答案 0 :(得分:16)
在您的web.config(system.webServer部分)中,您可以告诉网站将所有错误处理传递给应用程序:
<httpErrors existingResponse="PassThrough" />
这样做的缺点是Umbraco除了找不到的.aspx页面之外什么都不会处理。
你可以通过做这样的事情来改善它:
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/non-existing-page.aspx" responseMode="ExecuteURL" />
</httpErrors>
Umbraco中还不存在non-existing-page.aspx,所以它触发404(因为它有aspx扩展名)和.. presto:Umbraco完美处理404!
答案 1 :(得分:3)
在我添加
之前,500错误无效existingResponse="Replace"
像那样
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="404" path="/non-existing-page.aspx" responseMode="ExecuteURL" />
<error statusCode="500" path="error.html" responseMode="File" />
</httpErrors>