无法让 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 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Visual Studio 2012 Express 将 ASP.NET MVC 4 应用程序部署到 Web 托管提供商子目录?
SMTP 服务器无法从托管 c#asp.net 发送电子邮件
请求实体对于自托管 ASP.Net Web API 来说太大