Asp.net IIS7无法加载aspx页面

Asp.net IIS7无法加载aspx页面,asp.net,iis-7,iis-6,Asp.net,Iis 7,Iis 6,在过去的几天里,我一直在尝试将一个相当大的web应用程序从IIS6迁移到IIS7,但每次我们似乎都快完成了,IIS7都无法加载aspx页面 该应用程序是一个.NET3.5WebApp,大量使用反射和web服务。我们使用两个主要组件(每个组件在IIS7中都有自己的网站,尽管它们共享一个应用程序池):web UI(aspx页面)和webAPI(asmx页面) webAPI部分运行得很好(据我们所知,有一些东西我们无法从浏览器中测试),web UI页面可以加载静态HTM页面。问题是,一旦我们试图查看一

在过去的几天里,我一直在尝试将一个相当大的web应用程序从IIS6迁移到IIS7,但每次我们似乎都快完成了,IIS7都无法加载aspx页面

该应用程序是一个.NET3.5WebApp,大量使用反射和web服务。我们使用两个主要组件(每个组件在IIS7中都有自己的网站,尽管它们共享一个应用程序池):web UI(aspx页面)和webAPI(asmx页面)

webAPI部分运行得很好(据我们所知,有一些东西我们无法从浏览器中测试),web UI页面可以加载静态HTM页面。问题是,一旦我们试图查看一个aspx页面(任何aspx页面),整个过程就会停止;事件查看器中不会记录任何错误,直到几分钟后收到IIS 5010警告(工作进程忽略ping)

我们尝试以两种不同的方式迁移应用程序:

  • 手动:我们移动了所有必要的文件并设置了虚拟目录,然后将它们转换为网站。结果:工人流程占用了100%的单芯,并一直旋转(直到手动终止)
  • 自动:利用www.iis.net中的MSDeploy应用程序,我们归档了整个iis6web服务器,并将其解包到一个空白的IIS7安装中。我们必须关闭Forms Auth以消除401.2错误,但在此之后,结果是webAPI组件仍然可以正常工作,但web UI工作进程占用了单个内核的100%,而不是增加到所需内存的三分之一左右,然后什么也不做
  • 无论哪种方式,从用户的角度来看,情况都是一样的

    不幸的是,我们甚至无法将调试器附加到工作进程,因为它似乎没有加载托管代码

    详情:

    • .net framework:v3.5
    • CLR版本:v2.0
    • IIS授权模式:匿名
    • 操作系统arch:x64
    • App-arch:x86
    • 经典管道和集成管道都会发生这种情况
    注:

    • 新的web项目在IIS7中似乎工作得很好,当然,xml web服务也很好
    • 临时DLL被创建并存储在临时ASP.net DLL文件夹中,即使工作进程似乎从未包含托管代码
    • 添加到web UI项目中的新页面也显示了相同的行为(尝试没有什么坏处)
    更新:

    • 我们已经把问题缩小到一个单独的组件。它是第三方web控件的包装器。我正在研究更换它,看看它是否能解决问题

    尝试重新注册ASP.NET:

    http://msdn.microsoft.com/en-us/library/k6h9cz8h(VS.80).aspx
    
    典型的命令行语法是将命令行连接到框架的ASP.NET 2.0版本,并键入:

    aspnet_regiis -i
    

    尝试重新注册ASP.NET:

    http://msdn.microsoft.com/en-us/library/k6h9cz8h(VS.80).aspx
    
    典型的命令行语法是将命令行连接到框架的ASP.NET 2.0版本,并键入:

    aspnet_regiis -i
    
    您的应用程序池是否使用“经典”管道模式。“集成”是IIS7中的默认设置,它引入了配置方面的更改。(一个例子是需要在web.config中进行不同配置的HttpHandler)

    “经典型”模拟IIS6应用程序池,应使用与IIS6相同的配置

    如果您喜欢使用集成管道,有一些工具会自动尝试转换您的配置文件

    Scott Hanselman在他的文章中介绍了其中一些工具。

    您的应用程序池是否使用“经典”管道模式。“集成”是IIS7中的默认设置,它引入了配置方面的更改。(一个例子是需要在web.config中进行不同配置的HttpHandler)

    “经典型”模拟IIS6应用程序池,应使用与IIS6相同的配置

    如果您喜欢使用集成管道,有一些工具会自动尝试转换您的配置文件

    Scott Hanselman在他的文章中介绍了其中一些工具。

    原来这是供应商控制的问题。希望他们的解决方案真的有效…


    原来这是供应商控制的问题。希望他们的解决方案能真正起作用…

    在IIS7中,打开“失败的请求跟踪”。这应该会给你更多的信息。我得到了一个失败的请求跟踪,因为它花费了太长时间,但仅此而已。没有其他错误。跟踪中唯一可疑的是,它几乎立即对asp请求进行排队和出列。另一个小道消息是,失败的请求跟踪实际上报告了一个200的请求状态:\在IIS7中,打开“失败的请求跟踪”。这应该会给你更多的信息。我得到了一个失败的请求跟踪,因为它花费了太长时间,但仅此而已。没有其他错误。跟踪中唯一可疑的是,它几乎立即对asp请求进行排队和出列。另一个小道消息是,失败的请求跟踪实际上报告了一个200的请求状态:\aspnet_regiis不能用于IIS7;相反,您应该使用服务器配置来安装ASP.NET(我已经安装了)。如果我尝试将aspnet\u regiis-I与IIS7一起使用,则会出现以下错误:C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet\u regiis.exe-I该错误指示计算机上未安装IIS。请在使用此工具之前安装IIS。完成了ASP.NET(2.0.50727)的安装;当我使用64位IIS时,我正试图使用32位框架。使用64位aspnet_功能正常,但没有解决问题。系统的行为保持不变。aspnet_regiis不能用于IIS7;相反,您应该使用服务器配置来安装ASP.NET(我已经安装了)。如果我尝试将aspnet\u regiis-I与IIS7一起使用,则会出现以下错误:C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet\u regiis.exe-I该错误指示IIS为n