在升级到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/.
我们必须更新 physicalDirectory 值并再向上移动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可用且预览不可用之前我们无法这样做。
答案 0 :(得分:9)
是的,这是官方更改,但除了升级报告中包含的内容之外,我找不到任何有关它的文档:
“Site元素的physicalDirectory属性'.. \ MyWebRole'包含相对路径。此路径相对于打包时目标服务定义文件所在的目录。在以前的版本中,此文件位于根目录中项目目录。在此版本中,默认情况下,此文件位于项目输出目录中。您可能需要更新相对路径以反映目标服务定义文件的新位置。“
答案 1 :(得分:2)
在回答sudhAnsu63的问题时,我遇到了同样的问题,我将更新physicalDirectory属性,但它会重新加载文件并恢复到旧的(现在不正确的)配置。我仍然不明白为什么,但我注意到VS有时会打开同一文件的多个版本。我不得不关闭所有其他文件,进行编辑,保存并关闭文件,然后它最终进行了编辑并开始工作。我相信在VS外部编辑文件(就像在记事本中一样)可能会起作用。奇怪的是,一旦我让它工作一次,它似乎不再遇到这个问题了。