【发布时间】:2011-08-31 09:10:09
【问题描述】:
我们使用 MVC3 和 Entity Framework 4.1 在 .Net Framework 4 上构建了一个 C# Web 应用程序。该应用程序在 Windows Azure 中运行,并针对 SQL-Azure 数据库工作。当我们部署应用程序时,我们遇到了一个有点奇怪的问题。
使用从我们的 svn 中签出的完全相同的代码,在一台计算机上通过 Visual Studio 部署应用程序时一切正常,但是,在另一台计算机上执行完全相同的操作会导致应用程序返回 404 错误,无论如何你试图达到什么控制器/动作。该应用程序在两台计算机上的云模拟器中运行顺畅。我们也尝试将应用程序打包到错误的计算机上,并通过 Azure 门户网站进行部署,但这也不起作用。
两台计算机都运行 Windows 7 64 位,安装了 Visual Studio 2010 Ultimate 和 Azure SDK。
关于为什么会这样的任何想法?
问候, 克里斯托弗
编辑: 使用 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 文件夹中。
【问题讨论】:
-
您确定其中一台机器没有本地更改吗?
-
听起来部署只是在第二台计算机上以某种方式失败,并且您收到 404,因为尚未部署 Web 应用程序,因此没有控制器和操作。
-
我们已经从工作计算机上的 repo 根目录进行了完整提交,然后在错误计算机上从我们的 svn 中重新签出了最新版本,因此它们正在运行代码的完全相同的版本 - 所以我看不到应该有任何本地更改。
-
@Ben - 根据 VS 和 web 门户,部署成功,并且角色在 Azure 中运行良好。
-
网络角色是否启用了 RDP?您可以登录并检查所有内容是否已部署并正常。
标签: c# deployment azure