繁体   English   中英

IIS7无法加载aspx页面

[英]IIS7 fails to load aspx pages

过去几天,我一直在尝试将相当大的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 worker进程占用了单个核心的100%到所需内存的大约三分之一,然后闲着无所事事。

无论哪种方式,从用户的角度来看都是一样的。

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

细节:

  • .net框架:v3.5
  • CLR版本:v2.0
  • IIS授权模式:匿名
  • 操作系统架构:x64
  • 应用架构:x86
  • 发生在经典管道和集成管道中

笔记:

  • 新的Web项目在IIS7中似乎可以正常工作,当然,xml Web服务也可以
  • 临时DLL 创建并存储在临时ASP.net的DLL文件夹,即使工作进程似乎永远不会包含托管代码。
  • 添加到Web UI项目的新页面也显示相同的行为(尝试时不会感到受伤)

更新:

  • 我们已将问题缩小为单个程序集。 它是第三方Web控件的包装。 我正在研究替换它,我们将看看它是否可以解决问题。

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

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

尝试重新注册ASP.NET:

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

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

aspnet_regiis -i

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM