8

在升级到 1.8(2012 年 10 月)之前,这是我们在 ServiceDefinition 中配置站点的方式。

<Site name="Admin" physicalDirectory="..\Company.Admin">
  <Bindings>
    <Binding name="AdminBindingHttp" endpointName="HttpEndpoint" hostHeader="admin.company.com" />
  </Bindings>
</Site>

升级后,我在尝试发布时收到以下错误。

Error 125 Cannot find the physical directory 'C:\Users\Me\Code\Company.Cloud\bin\Company.Admin' for virtual path Admin/.

我们必须更新物理目录值并向上移动 2 个文件夹。

<Site name="Admin" physicalDirectory="..\..\..\Company.Admin">
  <Bindings>
    <Binding name="AdminBindingHttp" endpointName="HttpEndpoint" hostHeader="admin.company.com" />
  </Bindings>
</Site>

似乎在 1.8 之前的 Azure 是在 csdef 文件的原始位置的上下文中执行的,但现在它是从bin\Release\ServiceDefinition.csdef执行的,它比 2 个文件夹更深。

我在网上找不到专门讨论与最新 SDK 版本一起使用的此功能的教程。这是官方的改动吗?我还应该提到,我们也同时升级到了 VS 2012。

我觉得这个功能经常被忽视。(请参阅缺少 .config 转换问题)。我们很想切换到 Azure 网站,但在 SSL/HTTPS 可用且不在预览版之前,我们无法这样做。

4

2 回答 2

9

是的,这是官方更改,但除了升级报告中包含的内容之外,我找不到任何关于它的文档:

“Site 元素的物理目录属性 '..\MyWebRole' 包含一个相对路径。此路径与打包时目标服务定义文件所在的目录相关。在以前的版本中,此文件位于项目根目录中。在此版本中,默认情况下,此文件位于项目输出目录中。您可能需要更新相对路径以反映目标服务定义文件的新位置。

于 2012-11-14T17:41:25.450 回答
2

在回复 sudhAnsu63 的问题时,我遇到了同样的问题,我将更新物理目录属性,但它会重新加载文件并恢复到旧的(现在不正确的)配置。我仍然不明白为什么,但我注意到 VS 有时会打开同一个文件的多个版本。我不得不关闭所有其他文件,进行编辑,保存并关闭文件,然后它终于接受了我的编辑并开始工作。我相信在 VS 外部编辑文件(如在记事本中)可能会起作用。奇怪的是,一旦我让它工作一次,它似乎就不再遇到这个问题了。

于 2012-11-24T20:22:36.327 回答