在Azure Cloud Service项目中发布内容文件

时间:2016-04-19 13:34:34

标签: c# azure azure-cloud-services azure-pack azure-packaging

我有使用C#编写的Azure Cloud Service项目。该项目包含Azure Worker Role。

My Worker Role是引用其中包含目录的另一个项目(在同一解决方案中)。在此目录中有10个HTML文件。所有这些文件都标有这些设置(文件设置):

  

构建操作:内容

     

复制到输出目录:复制更新

我构建了我的辅助角色,这些内容文件位于此路径上:bin/release/my-files/ dir。所以,我的项目配置看起来不错。

我将Azure蔚蓝云服务发布到Azure,内容文件未上传。我通过将远程桌面连接到计算机并检查此路径来验证:" E:\ approot"。我的内容文件不存在。

我该怎么做才能上传这些内容文件?

更新

感谢@ Gaurav_Mantri 评论,我检查了CSSX文件,我的内容文件丢失了。不,我不知道发布后我的天蓝色工作者角色也不见了。

我还尝试更改"复制到输出目录 - >始终复制"。结果相同。

2 个答案:

答案 0 :(得分:1)

一般指导是尽可能避免云服务和PaaS中的本地文件系统交互,因为(除其他事项外)它要求您在解决方案中的每个VM上复制内容(在面对auto时不一定是一项微不足道的任务) - 缩放等)。 Azure中有几个选项:

Azure文件允许您作为网络​​共享从中央位置与文件和文件夹进行交互:

Azure File Storage

您始终可以直接从Azure blob读取和写入文件:

Azure Blob storage

如果您的HTML内容文件面向公众并且收到的流量超过少量,您可能还会考虑使用Azure CDN服务来托管它们:

Azure CDN

祝你好运!

答案 1 :(得分:1)

不是真的答案,但有一件事你可能想检查文件是否包含在包本身中。本质上,包文件(*.cspkg)是一个zip文件。您可以做的是将文件的扩展名从cspkg更改为zip并提取该文件。

提取zip文件后,您将看到每个角色都有cssx扩展名的文件。将这些扩展名更改为zip并解压缩这些文件。

如果一切配置良好,您应该能够在适当的目录中看到这些文件。如果文件不存在,那就意味着错误(显然)。在这种情况下,您可以尝试将Copy to output directory更改为Copy Always,而不是设置当前的Copy if newer