将ASP.NET MVC应用程序部署到Web主机时由于配置锁定导致的内部服务器错误

时间:2009-10-26 05:15:34

标签: asp.net-mvc iis deployment iis-7 web-hosting

我正在本地Windows Server 2008 / IIS7计算机上开发ASP.NET MVC网站,我现在正尝试将其部署到我的网站托管服务提供商ASPnix。我正在使用他们的共享虚拟主机服务,并被放置在他们声称支持ASP.NET MVC的IIS7服务器上。

但是,当我将应用程序部署到他们的服务器时,我收到“内部服务器错误”。

以下是错误摘要

  

HTTP错误500.19 - 内部服务器错误

     

无法访问请求的页面,因为页面的相关配置数据无效。

以下是详细错误信息的相关部分:

  

模块:IIS Web Core

     

通知:BeginRequest

     

处理程序:尚未确定

     

错误代码:0x80070021

     

配置错误:此配置部分不能在此路径中使用。当该部分被锁定在父级别时会发生这种情况。锁定是默认情况下(overrideModeDefault =“Deny”),或由locationMode =“Deny”或遗留allowOverride =“false”的位置标记显式设置。

配置来源如下所示:

144:        </modules>
145:        <handlers>
146:            <remove name="WebServiceHandlerFactory-Integrated"/>

错误来自于我的web.config文件中有一个 system.webServer 部分,该部分包含处理程序子部分。 system.webServer 部分是我在Visual Studio中首次创建ASP.NET MVC网站时默认设置的确切配置部分。它上面有以下XML注释:

<!-- 
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0.  It is not necessary for previous version of IIS.
-->

我将处理程序子部分取出,500错误就消失了。当然,该部分是ASP.NET MVC应用程序在IIS7中正常工作所必需的,因此简单地使用它只会产生其他错误(在这种情况下会出现404错误,因为路由不起作用)。

ASPnix的支持工程师声称ASP.NET MVC在其服务器上的IIS7中正确安装和配置。我不是说我不相信它们,因为这是我构建和部署的第一个ASP.NET MVC站点。但是,我无法想到我能做些什么来使这项工作,因为它似乎是一个我无法访问的级别的配置问题。

这个问题有点像人们尝试将ASP.NET MVC部署到托管服务提供商时会遇到的常见问题。是否有任何与ASPnix或其他网络托管公司有关的事情并希望找到解决方案?

PS

奇怪的是。在网上研究这个问题时,我发现许多人说他们必须将其对IIS7的applicationHost.config文件的overrideModeDefault属性设置为“拒绝”为“允许”。但是,我的本地开发服务器将此设置为“拒绝”,一切正常。即便如此,我仍然无法访问web主机服务器上的applicationHost.config文件。

3 个答案:

答案 0 :(得分:7)

打开IIS管理,在主服务器节点下,选择打开功能委派(在管理部分中)

“处理程序映射”到“读/写”而不是“只读”

看起来您的托管服务提供商不必要地锁定了IIS。

我能够在本地IIS 7.5服务器上重新创建问题。

有关全局设置重置的信息,请参阅this

答案 1 :(得分:0)

请检查您是否正确部署了应用程序:Deploying an ASP.NET Server (IIS 7)

答案 2 :(得分:0)

指向的链接 http://www.winservermart.com/Howto/HTTP_Error_500_19_IIS_7.aspx 不解决问题。 “重置委派”仅在特定域的web.config中创建一个异常,这使得站点可以正常工作,但是没有回答如何在系统范围内永久设置它。 所以,这并不羞耻,因为我们知道解决方案并正确设置所有设置。在这里广告其他一些主机毫无意义我们有大量的客户端从wh4l运行并描述了他们的服务器过载有多棒。

-Polk