6

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

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

这是错误摘要

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

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

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

模块:IIS Web 核心

通知:开始请求

处理人:尚未确定

错误代码:0x80070021

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

配置源如下所示:

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

该错误来自这样一个事实,即我的web.config 文件中有一个system.webServer部分,该部分有一个handlers子部分。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 文件。

4

3 回答 3

7

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

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

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

我能够在我的本地 IIS 7.5 服务器上重现该问题。

有关全局设置重置,请参阅此内容。

于 2009-10-27T16:44:12.430 回答
0

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

于 2009-10-27T12:06:26.800 回答
0

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

-波尔克

于 2010-03-03T06:46:09.483 回答