MVC3 部署时出现 Http 500 内部服务器错误

MVC3 部署时出现 Http 500 内部服务器错误

我正在尝试将 MVC3 应用程序部署到 IIS 7.5 在每条路由上我都收到 http 500 - 内部服务器错误:

Error Summary
HTTP Error 500.0 - Internal Server Error
The page cannot be displayed because an internal server error has occurred. Detailed Error Information
Module ManagedPipelineHandler 
Notification ExecuteRequestHandler 
Handler System.Web.Mvc.MvcHandler 
Error Code 0x00000000 
Requested URL http://www.xxxxxx.com:80/Home/Index
Physical Path C:\inetpub\wwwroot\xxxxxx.com\Home\NoAccess 
Logon Method Anonymous 
Logon User Anonymous 
Failed Request Tracing Log Directory C:\inetpub ..

我可以请求简单的 html 文件,或者使用内联代码的常规 aspx 文件。已启用失败请求跟踪,请求跟踪显示一条警告:

131. -MODULE_SET_RESPONSE_ERROR_STATUS 
ModuleName ManagedPipelineHandler 
Notification 128 
HttpStatus 500 
HttpReason Internal Server Error 
HttpSubStatus 0 
ErrorCode 0 
ConfigExceptionInfo  
Notification EXECUTE_REQUEST_HANDLER 
ErrorCode The operation completed successfully. (0x0) 

当我尝试在 IIS 中重新创建站点并测试连接时,我收到“无法验证对路径的访问”错误。我授予了网络服务完全控制权,应用程序池的身份也是网络服务。

框架设置为4.0,托管管道模式=集成。

有什么想法吗?或者需要更多信息吗?

答案1

先看这里: https://stackoverflow.com/questions/5349867/error-handling-in-asp-net-mvc3

更新:如果它没有帮助 - 请阅读此讨论(特别是第 2 页的最后一篇文章): http://forums.asp.net/t/1657582.aspx/2/10?Error+500+0+when+MVC+runs+on+IIS7

更新2:这个看起来也很有希望: http://forums.asp.net/t/1652026.aspx/1

<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />从......中去除http处理程序

并添加<add verb="POST,GET" name="scripthandlerajaxFactory" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />处理程序

答案2

请检查应用程序,也许这是预期的行为。

我遇到了完全相同的问题,检查了所有明显的权限(IIS APPPOOL\AppPoolName 对文件系统和数据库的权限、经过身份验证的用户对“脚本”和“内容”目录的访问权限),但仍然没有运气。甚至进程监视器也无济于事,没有失败的访问日志。

解决方案很简单 - 403.0 是正确的响应代码。我相信 Web 应用程序应该返回一个标准视图,表示“您的域帐户未在数据库中列出,因此请离开”(正如该项目中的所有应用程序一样,这是我们使用的惯例)。但是对于这个应用程序,开发人员将其做得不同,并返回 IIS“修饰”的纯 403.0。

答案3

从备份中移动 wwwroot 文件夹后出现此问题。必须将 IIS_IUSRS 添加到文件夹权限。https://stackoverflow.com/questions/14934006/iis-iusrs-and-iusr-permissions-in-iis8

相关内容