无法让 Web 服务器托管 ASP.NET 4 应用程序

Posted

技术标签:

【中文标题】无法让 Web 服务器托管 ASP.NET 4 应用程序【英文标题】:Can't get web server to host ASP.NET 4 app 【发布时间】:2011-10-19 14:16:51 【问题描述】:

环境: - Windows Server Standard 2008 SP2(不是 R2)x64 - 带有用于 Microsoft SmoothStreaming 的媒体服务 4 的 IIS7 - MediaWiki 和 mysql

SmoothStreaming 运行良好,MediaWiki 运行良好...其他杂项 php 应用运行良好。

我最近使用 Visual Studio 2010 开发了一个应用程序。当我在 Visual Studio 中调试该应用程序时,它编译良好,没有错误。当我将已编译的应用程序移动到 Web 服务器时,即使应用程序池是为 .Net 4.0 配置的,它也会给我错误。我显然错过了一些东西,我一整天都没有找到任何答案。

我尝试使用 aspnet_regiis.exe 工具向 IIS 注册 ASP.NET 4,但在 %windir%\Microsoft.NET\Framework64\v4.0.30319 或 %windir%\Microsoft.NET\Framework\ 中不存在此类文件v4.0.30319.

我不明白,我现在在 Windows 7 Pro x64 机器上,我在两个位置都有必要的 aspnet_isapi.dll 文件……但在我的 Windows Server 2008 机器上却没有,即使我使用了完全相同的 .Net Framework 4 安装程序...

我还尝试卸载 .Net Framework 4 并重新安装,以便它自动向 IIS7 注册,但 asapi 处理程序从未出现,并且这些目录中不存在注册工具。

我在这里错过了什么?

具体错误(尽管我对具体错误的研究没有产生任何方向)是“处理程序'PageHandlerFactory-Integrated'在其模块列表中有一个错误模块'ManagedPipelineHandler'”我在web.config下的唯一模块条目是<modules runAllManagedModulesForAllRequests="true"/>

【问题讨论】:

见:***.com/questions/532203/asp-net-in-iis7 【参考方案1】:

您的问题有点不清楚(因为您收到的错误缺乏详细信息......例如,当您导航到页面时是否收到错误?是 404 吗?等),但我会试一试。

首先想到的是,您正在运行的 Web 应用程序是 MVC 应用程序吗?如果是这样,您的网络服务器可能未设置为处理路由。

如果这是一个 MVC 应用程序,并且您确实收到了 404,您可以尝试将以下内容添加到您的 web.config:

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true">
<system.webServer>

这将确保 ASP.Net 用于处理该站点的 Web 服务器上的所有请求,假设您在应用程序中引用了 System.Web.Routing。如果事实证明这可以解决问题,那么可能值得研究更具可扩展性的解决方案。

【讨论】:

我在 system.webserver 下有该条目,当前返回的错误是“处理程序 'PageHandlerFactory-Integrated' 在其模块列表中有一个错误的模块 'ManagedPipelineHandler'”错误 500.21。我没有在 Visual Studio 2010 中使用任何花里胡哨,没有 MVC,没有 AjaxToolKit,只是平坦的 VS2010。另外,经过仔细检查,我没有引用System.Web.Routing...我应该这样做吗? 如果您使用路由,则必须引用它。 对不起,我不知道这意味着什么。什么构成“使用路由”?【参考方案2】:

原来我是个大菜鸟。

确保已安装正确版本的 .NET Framework 4.0,这一点很重要。您需要“客户端”版本。如果您安装“ServerCore”,您将遇到与我相同的问题,即使您直观地认为您需要“ServerCore”来运行网络“服务器”,但事实并非如此。

【讨论】:

以上是关于无法让 Web 服务器托管 ASP.NET 4 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

非托管 DLL 无法在 ASP.NET 服务器上加载

如何使用 Visual Studio 2012 Express 将 ASP.NET MVC 4 应用程序部署到 Web 托管提供商子目录?

SMTP 服务器无法从托管 c#asp.net 发送电子邮件

请求实体对于自托管 ASP.Net Web API 来说太大

强大的自托管服务器的最佳选择:WCF 与 ASP.NET Web Api

从托管在被 CORS 策略阻止的 Asp.net 核心 Web 服务器中的 Angular 应用程序调用我的休息服务