我有一个asp.net混合Web表单/ mvc应用程序。当用户尝试上传超过maxAllowedContentLength的文件时,我正在尝试使用web.config中的httpErrors标记重定向到自定义错误页面。
虽然“Redirect”responseMode工作正常,但我无法让“ExecuteUrl”responseMode工作。
使用IIS Express在Visual Studio 2013中进行单元测试时,以及部署到运行IIS 7.5的计算机时,都会出现此问题。
使用“重定向”和mvc控制器的完整路径可以正常工作:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="13" />
<error statusCode="404" subStatusCode="13" prefixLanguageFilePath=""
path="http://localhost:12345/Error/ErrorFileUploadSizeExceeded" responseMode="Redirect" />
</httpErrors>
但是,使用带有相对路径的“ExecuteUrl”不起作用(相反,我看到默认的iis 404页面,显然iis找不到相对路径):
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="13" />
<error statusCode="404" subStatusCode="13" prefixLanguageFilePath=""
path="/Error/ErrorFileUploadSizeExceeded" responseMode="ExecuteURL" />
</httpErrors>
我需要更改什么才能让“ExecuteURL”正常工作?
答案 0 :(得分:-1)
请检查您的MVC控制器是否与您的应用程序本身位于同一个应用程序池中。
出于架构原因,IIS 7.0只能在同一应用程序池中执行URL。使用重定向功能在不同的应用程序池中执行自定义错误。