首页 文章

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

提问于
浏览
0

环境:

  • Windows Server Standard 2008 SP2(不是R2)x64
  • 带有适用于Microsoft SmoothStreaming的Media Services 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处理程序从未显示,并且这些目录中不存在注册工具 .

我在这里错过了什么?

具体错误(虽然我对特定错误的研究没有产生任何方向)是"Handler 'PageHandlerFactory-Integrated' has a bad module 'ManagedPipelineHandler' in its module list"我在web.config下的唯一模块条目是 <modules runAllManagedModulesForAllRequests="true"/>

2 回答

  • 0

    您的问题有点不清楚(因为您收到的错误中缺少详细信息...例如,当您导航到页面时是否出现错误?是404等等),但我会采取刺 .

    想到的第一个想法是,您运行MVC应用程序的Web应用程序是什么?如果是这样,您的Web服务器可能未设置为处理路由 .

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

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

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

  • 0

    事实证明我是一个巨大的菜鸟 .

    确保安装了正确版本的.NET Framework 4.0非常重要 . 您需要“客户端”版本 . 如果您安装“ServerCore”,您将遇到我遇到的同样问题,即使您直觉性地认为您需要“ServerCore”来运行Web“服务器”,情况并非如此 .

相关问题