C# 未在Azure包中创建Web.config

C# 未在Azure包中创建Web.config,c#,asp.net-mvc-4,azure,assembly-binding-redirect,C#,Asp.net Mvc 4,Azure,Assembly Binding Redirect,我正在尝试使用SDK工具版本2.2在Azure中运行一个现有的工作Web应用程序。该Web应用程序作为“普通”MVC4站点运行良好,并且在Azure emulator本地运行良好。该应用程序设计为在服务器上安装或作为Web角色运行 我整个周末都在尝试将其发布到Azure,但总是得到 Server Error in '/' Application 信息。通过启用远程桌面,我可以查看事件日志,这就是我得到的消息 (太长了,读不下去了,但是对于TL;DR目的,我认为绑定重定向没有被选中,因为主要的抱

我正在尝试使用SDK工具版本2.2在Azure中运行一个现有的工作Web应用程序。该Web应用程序作为“普通”MVC4站点运行良好,并且在Azure emulator本地运行良好。该应用程序设计为在服务器上安装或作为Web角色运行

我整个周末都在尝试将其发布到Azure,但总是得到

Server Error in '/' Application
信息。通过启用远程桌面,我可以查看事件日志,这就是我得到的消息

(太长了,读不下去了,但是对于TL;DR目的,我认为绑定重定向没有被选中,因为主要的抱怨是Syr.Web.MVC 3.0.0.0不能加载)。 我尝试卸载ELMAH以防出现这种情况,但我仍然无法加载MVC版本3.0.0.0

当然,这是有道理的,因为我运行的是MVC4,这就是我包中的内容

当然,在本地运行v4不是问题,因为my Web.config具有:

<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
对于所有这些:

MVC assemblies must be added to the package or installed on the virtual machine for your web role. For more details about this, see the following help page: http://go.microsoft.com/fwlink/?LinkId=218227.
现在这似乎很清楚了,只是它们都被设置为与项目一起复制,并且我的项目被设置为web角色(如链接所示)。在链接中有人说必须使用ASP Net MVC安装创建一个启动文件夹,并添加一个WebStart cs,但我觉得这是一个过时的建议,否则为什么不“转换到Windows Azure云服务项目”来做这些工作呢

更新2

好的,看起来我的Web.config文件由于某种原因没有打包。我找到了一个在Azure中成功安装的项目,用7-zip打开了包文件,发现其中捆绑了一个Web.config文件。此问题项目中没有此类web.config文件。我会开始尝试找出原因


我还更新了问题标题以反映这一信息。几乎可以肯定这是一切的原因。

我认为您在RDP会话中没有找到正确的web.config。站点(web应用)存储在虚拟硬盘驱动器上,通常为e:\sitesroot\0或f:\sitesroot\0-您可以通过打开IIS并检查站点物理目录来确认这一点。在该目录中,您将找到在构建/包过程中转换的web.config。这是您的站点使用的web.config。通过在
部分添加
开始故障排除。然后从IIS本地浏览站点。我怀疑您没有将System.Web.Mvc设置为
Copy Local=True
。接下来,您的web.config生成设置应为:

  • 构建操作=内容
  • 复制到输出目录=不复制(您不希望bin目录中有web.config文件)

作为Azure部署的一般经验法则,如果应用程序使用的程序集的路径不在
。\Reference Assemblies\..
,那么您很可能需要设置
Copy Local=True
以将程序集包括在bin目录中。

结果表明,这与

My web.config的部署值为“none”(不知为何),因此没有包含在包中,这意味着创建了一个几乎为空的默认值


我将部署类型更改为“Content”(使用Web.config上的属性),现在正在绑定它。

请确保在
.csproj
文件中包含该文件,否则它将被忽略


...

谢谢我已经更新了我原来的问题的一些方面。还是不工作。我花了很多时间在这上面。我无法升级包更新,因此网站出错。直到我看到这个评论。所以,你的评论还是有帮助的,差不多三年后:-)谢谢!
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <machineKey decryption="AES" decryptionKey="F7FA540B4DFD82E5BB196B95D15FF81F6FC418E967F01A1C60FB407A84615031" validation="SHA1" validationKey="6FC418E967F01A1C60FB407A84615031902C0D9A9DE62168764FF0DCE537184F0535D5D9AD66DEDC6FC418E967F01A1C60FB407A84615031902C0D9A97DC1ABF" />
    </system.web>
</configuration>
warning WAT153: The web project 'xxx' is dependent on the following MVC assembly: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll.
warning WAT153: The web project 'xxx' is dependent on the following MVC assembly: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.dll.
warning WAT153: The web project 'xxx' is dependent on the following MVC assembly: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.Razor.dll
warning WAT153: The web project 'xxx' is dependent on the following MVC assembly: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Razor.dll.
warning WAT153: The web project 'xxx' is dependent on the following MVC assembly: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Deployment.dll.
MVC assemblies must be added to the package or installed on the virtual machine for your web role. For more details about this, see the following help page: http://go.microsoft.com/fwlink/?LinkId=218227.