Asp.net mvc Azure ASP.NET MVC Web.Config部署问题

Asp.net mvc Azure ASP.NET MVC Web.Config部署问题,asp.net-mvc,azure,web-config,Asp.net Mvc,Azure,Web Config,我们正在开发一个ASP.NET MVC web应用程序,该应用程序将托管在Windows Azure上。我们在开发过程中部署了应用程序几次,没有出现任何问题。事实上,这一过程的顺利进行令人十分惊讶。然后,当我们部署应用程序进行beta测试时,每当我们试图导航到站点的基本url时,我们总是会收到403个拒绝访问错误。如果我们尝试导航到站点的各种控制器和操作中的任何一个,那么我们将得到404,资源找不到错误 我们注意到的另一件奇怪的事情是,我们将身份验证重定向页面定义为/Access/sign,而不

我们正在开发一个ASP.NET MVC web应用程序,该应用程序将托管在Windows Azure上。我们在开发过程中部署了应用程序几次,没有出现任何问题。事实上,这一过程的顺利进行令人十分惊讶。然后,当我们部署应用程序进行beta测试时,每当我们试图导航到站点的基本url时,我们总是会收到403个拒绝访问错误。如果我们尝试导航到站点的各种控制器和操作中的任何一个,那么我们将得到404,资源找不到错误

我们注意到的另一件奇怪的事情是,我们将身份验证重定向页面定义为/Access/sign,而不是默认帐户/登录。在开发机器上一切正常,我们被重定向到/Access/sign,但当发布到Azure时,我们看到我们被重定向到/Account/Login。这使我们认为web.config文件存在问题

我们在Azure部署上启用了远程桌面,并查看了web.config文件,结果发现它几乎完全是空的!那里唯一的环境是机关枪。我们手动将web.config从一台开发机器复制到Azure虚拟机实例,从那以后一切都开始工作


到底是什么让部署删除了web.config文件?由于我们无法在每次部署更新时手动更新web.config文件,因此如何防止这种情况发生?

我通常通过查看.cspkg文件的内容来解决此类问题。这使我可以避免等待Azure包上载和初始化。以下是查看.cspkg内容的步骤:

  • 导航到/bin//app.publish文件夹
  • 将.cspkg文件重命名为.cspkg.zip
  • Open.cspkg.zip。您将为Azure项目引用的每个项目找到一个.cssx文件(实际上是一个zip文件)
  • 解压缩要检查的.cssx文件,并将其重命名为.cssx.zip
  • 打开.cssx.zip并四处看看。对于WorkerRoles,请查看approot文件夹。对于WebRoles,请查看sitesroot文件夹

  • 在构建cspkg时,您是否正在执行任何配置转换?老实说,我甚至不知道这是可能的!除非我们意外地做了什么,否则我不知道会发生什么变化。只是确认一下,如果没有定义转换,那么web.config应该部署到Azure,因为它是正确的吗?你是正确的。应按原样复制web.config。如果导航到/bin//app.publish文件夹,则应找到上载到Azure的.cspkg文件。您可以通过为文件提供.zip扩展名来查看文件的内容。在cspkg中,Azure项目中引用的每个项目都有自己的zip文件(您还必须为项目zip添加.zip扩展名)。这将允许您查看Azure软件包的内容,而无需上传到Azure。这有助于解决此类问题。谢谢您的提示!这让我找到了解决办法。原来web.config文件甚至没有包含在部署包中。不知怎的,web.config文件的BuildAction从Content更改为None。。。不知道那是怎么发生的。如果你能为这个问题提供一些答案,我可以相信你。谢谢尼克!很高兴听到你能解决你的问题。