【问题标题】:Migrating MVC 3 site to Azure web role将 MVC 3 站点迁移到 Azure Web 角色
【发布时间】:2011-09-26 14:04:41
【问题描述】:

我正在尝试将现有的 MVC 3 网站迁移到 Azure Web 角色。我的开发环境使用了主机头:

lcladmin.mysite.com

主机头在我的主机文件中设置为指向 127.0.0.1。如果我使用 ServiceConfiguration.csdef 中的默认设置,则站点可以正常加载为 127.0.0.1,但依赖于使用主机标头的功能不起作用。所以我尝试在 SericeConfiguration.csdef 中的 Binding 上设置 hostHeader 属性,现在我在 Visual Studio 2010 中得到了这个错误对话框:

*将调试器附加到角色实例“deployment(17).Azure.Admin_IN_0”的 URL“http://lcladmin.mysite.com:81/”的 IIS 工作进程时出错。无法在 Web 服务器上开始调试。由于语法无效,服务器无法处理调试请求。*

此时我可以在我的网络浏览器中浏览该站点,并且一切似乎都在正常工作,并且任何现有的断点都会在 VS 中被命中。但是,由于带有上述消息的模态错误对话框,VS 无法使用。

这是我的 ServiceConfiguration.csdef 的内容:

<ServiceDefinition name="Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">  <WebRole name="Admin" vmsize="Small">
<Sites>
  <Site name="Web">
    <Bindings>
      <Binding name="Endpoint1" endpointName="Admin" hostHeader="lcladmin.mysite.com" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="Admin" protocol="http" port="81" />
</Endpoints>
<Imports>
  <Import moduleName="Diagnostics" />
</Imports>

我认为这也不是我要迁移的网站所特有的问题。如果我在我的解决方案中添加一个新的 Azure 项目和一个新的 MVC 3 Web 角色,并且我所做的唯一更改是添加 hostHeader 属性,它会做同样的事情。

【问题讨论】:

  • 我意识到我可以在没有调试的情况下从 Visual Studio 运行,但我想知道是否有办法解决这个问题,以便我可以自动附加。
  • 您是否尝试将域添加到 Windows 中的主机文件?

标签: azure


【解决方案1】:

Michael Neel 的这篇博文为我解决了同样的问题:Debugging Azure WebRoles with Multiple Sites

阅读 Michael 的条目后,对我来说关键是在 hosts 文件中获取正确的 ip 地址 - 就像他的条目中的一个 cmets 中提到的那样 - 我的 ip 需要是 127.255.0.0(您可以查看部署到 azure 模拟器后,您在 IIS 中的系统,查看站点的绑定)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2020-08-28
    相关资源
    最近更新 更多