1

在过去的几天里,我一直在将应用程序部署到 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 应用程序。我 rdp 到服务器上并环顾四周。API 项目没有被编译,基本上所有的 .cs 文件都在 siteroot > 1 的根目录中

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

任何帮助都会很棒。

4

1 回答 1

1

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

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

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

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

如果有人感到困惑 - 这里是关于Web 应用程序项目与网站项目的官方文档。

于 2013-04-05T06:05:11.370 回答