我从前任同事手中接过了Umbraco(版本4.7.1)的安装。必须关闭托管应用程序的服务器,因此我将应用程序迁移到新服务器。
旧服务器正在运行IIS6,但新服务器正在运行IIS7.5。当我尝试在新服务器上打开该站点时,我得到一个“对象引用未设置为对象的实例”异常。 YSOD没有提供有关出错的更多信息(见下文)。
当我在Visual Studio中本地运行应用程序时,它就像一个魅力。你们中的任何人都知道出了什么问题吗?
答案 0 :(得分:1)
我是否可以建议您从Umbraco 4.7.1存档中获取干净的web.config并首先尝试。您可以从此非官方存档http://code.leekelleher.com/umbraco/archive/
下载v4.7.1将您的自定义项合并到web.config中,例如连接字符串并给出一个go,因为我怀疑你的web.config没有迁移到IIS7。
几年前我写了一篇关于从IIS6迁移web.config文件的博客文章>如果上述建议没有帮助,IIS7可能会有用:
http://www.prolificnotion.co.uk/use-appcmd-to-migrate-web-config-from-iis6-to-iis7/
答案 1 :(得分:0)
您是否检查过您的应用程序池是否正在运行正确版本的.Net Framework?还要检查您正在运行的管道模式 - 我在集成模式下运行而不是经典模式。
在web.config的<system.webServer>
节点中找到<modules>
节点,并确保将runAllManagedModulesForAllRequests属性设置为true,因为这已经让我感到厌倦了几次。看起来应该是这样的:
<modules runAllManagedModulesForAllRequests="true">
我怀疑后者的建议是为你做的。
西蒙
答案 2 :(得分:0)
只是对@ Pronotion的一些建议嗤之以鼻......我偶尔会遇到在新服务器实例上安装应用程序的问题,并且不得不重新安装IIS。这是一个命令行:aspnet_regiis -i
同样从您的屏幕截图中,您似乎正在运行.Net 4应用程序池。据我记得,Umbraco 4.7.1应该在.Net 2 Classic应用程序池下运行。