部署的azure虚拟应用程序webrole未编译

时间:2013-04-05 00:44:23

标签: azure azure-web-roles

我花了最近几天将应用程序部署到auze。一切看起来都不错,但我遇到了虚拟应用程序的问题。

在我的servicedefinition文件中,我有

 <Sites>
  <Site name="Web" physicalDirectory="D:\@code\Web">
    <VirtualApplication name="API" physicalDirectory="D:\@code\API"></VirtualApplication>
    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" />
      <Binding name="Endpoint2" endpointName="Https" />
    </Bindings>
  </Site>
</Sites>

部署了两个应用程序并创建了虚拟应用程序但是我无法运行api应用程序。我转到服务器上看看。 API项目没有被编译,基本上所有的.cs文件都在siteroot&gt;的根目录中。 1

我需要做一些额外的步骤来解决这个问题吗?

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

只有WebRole项目(..Site name='Web'...)被“编译”。

您定义的所有其他网站(包括虚拟应用程序)都会被复制。因此,您需要将physicalDirectory指向本地部署/编译的应用程序文件夹。例如,您可以为部署到本地文件系统的API项目创建发布配置文件。然后在physicalDirectory定义中为VirtualApplication指定该部署的目标文件夹。

有一些文档here。但是,没有明确提到它为WebSite项目开箱即用,而不是Web应用程序项目!它适用于WebSite项目开箱即用,因为WebSite项目的部署模型只是xcopy deployment

显然现在很少有人做网站项目。我们大多数人都做Web应用程序项目。因此,对于Web应用程序,我们不能将physicalDirectory指向项目文件夹,而是指向该项目的部署文件夹。

如果有人感到困惑 - 请参阅Web Application Projects versus Web Site Projects上的官方文档。