c# web应用程序从一台计算机部署时在Azure中导致404错误,但从另一台计算机部署时不会

本文关键字:一台 计算机 部署 错误 web 应用程序 Azure | 更新日期: 2023-09-27 18:07:02

我们在。net Framework 4上使用mvc和实体框架4.1构建了一个c# web应用程序。该应用程序在Windows Azure中运行,并针对SQL-Azure数据库工作。当我们部署应用程序时,我们遇到了一个有点奇怪的问题。

使用完全相同的代码,从我们的svn中检查出来,当通过Visual Studio在一台计算机上部署应用程序时,一切都很好,然而,在另一台计算机上做完全相同的事情会导致应用程序返回404错误,无论你试图达到什么控制器/动作。该应用程序在两台计算机上的云模拟器中运行顺利。我们还尝试在错误的计算机上打包应用程序,并通过Azure web门户部署它,但这也不起作用。

两台电脑都运行64位Windows 7,安装了Visual Studio 2010 Ultimate和Azure SDK。

你知道为什么会这样吗?

问候,christof

编辑:

使用RDP(谢谢你的提示!@Ben)我想我们离解决方案更近了一点。在服务器上,将抛出以下异常:

Exception information: 
        Exception type: InvalidOperationException 
        Exception message: The pre-application start initialization method Start on type System.Web.WebPages.PreApplicationStartCode threw an exception with the following error message: Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified..
       at System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods)
       at System.Web.Compilation.BuildManager.CallPreStartInitMethods()
       at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)
Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
       at System.Web.WebPages.PreApplicationStartCode.Start()

奇怪的是,这个特殊的dll - Microsoft.Web.Infrastructure.dll包含在我的_bin_deployableAssemblies文件夹中。

c# web应用程序从一台计算机部署时在Azure中导致404错误,但从另一台计算机部署时不会

我找到了解决方案。由于某种原因,有一台计算机缺少一些必需的参考资料(Microsoft.Web)。基础设施系统。从我编辑过的问题中的错误可以看出。我不知道这两台计算机之间有什么不同,因为我们使用的是完全相同的源代码,但显然是这样的。

感谢@Ben关于远程桌面的建议,这确实帮助很大。

对于那些对在Azure实例上使用远程桌面感兴趣的人,请阅读微软关于该主题的优秀文章:http://msdn.microsoft.com/en-us/library/gg443832.aspx

我在Azure webrole实例上遇到了这个错误。确保将Microsoft.Web.Infrastructure引用添加到项目中。

但最重要的是查看基础设施引用的属性,并设置Copy Local = True

相关文章: