IIS7无法加载aspx页面

时间:2009-10-09 19:33:05

标签: asp.net iis-7 iis-6

过去几天我一直在尝试将一个相当大的Web应用程序从IIS6迁移到IIS7,但每次看起来我们已经完成了,IIS7无法加载aspx页面。

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

webAPI部分运行完美(据我们所知;我们无法从浏览器中测试一些内容),并且Web UI页面加载静态HTM页面就好了。问题是,一旦我们尝试查看aspx页面(任何aspx页面),整个事情就会停止;事件查看器中没有记录错误,直到几分钟后我们收到IIS 5010警告(工作进程忽略ping)。

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

  1. 手动:我们移动了所有必需的文件并设置了虚拟目录,然后将它们转换为网站。结果:工作进程占用单个核心的100%并永久旋转(直到手动终止)
  2. 自动:利用www.iis.net上的MSDeploy应用程序,我们将整个IIS6 Web服务器归档并将其解压缩到空白的IIS7安装中。我们不得不关闭Forms Auth来摆脱401.2错误,但之后的结果是webAPI组件仍然可以正常工作,但不是web UI工作进程占用100%的单个核心,它增长了大约三分之一的所需内存然后无所事事。
  3. 无论哪种方式,从用户的角度发生的事情都是一样的。

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

    详细说明:

    • .net framework:v3.5
    • CLR版本:v2.0
    • IIS授权模式:匿名
    • OS arch:x64
    • App arch:x86
    • 发生经典和集成管道

    注意:

    • 新的网络项目似乎在IIS7中运行得很好,当然,xml网络服务也很好
    • 临时DLL 创建并存储在临时ASP.net DLLs文件夹中,即使工作进程似乎从未包含托管代码。
    • 添加到Web UI项目的新页面也显示相同的行为(没有受到影响)

    更新

    • 我们已将问题缩小到单个程序集。它是第三方Web控件的包装器。我正在考虑更换它,我们将看看它是否解决了这个问题。

3 个答案:

答案 0 :(得分:1)

http://support.softartisans.com/kbview.aspx?ID=1318

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

答案 1 :(得分:0)

尝试重新注册ASP.NET:

http://msdn.microsoft.com/en-us/library/k6h9cz8h(VS.80).aspx

典型的命令行语法是命令行到ASP.NET 2.0版本的框架并输入:

aspnet_regiis -i

答案 2 :(得分:0)

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

“Classic”模仿IIS6应用程序池,并且应该使用与IIS6相同的配置。

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

Scott Hanselman在他的blog post中介绍了其中的一些工具。