如何在Azure云服务(Web角色)中部署App_Data文件

8
我有一个只读的数据文件(用于IP地理位置),需要我所使用的Web角色来读取。它目前位于App_Data文件夹中,但此文件夹未包含在云服务的部署程序中。与“Web Deploy”不同,没有复选框可供Azure云服务部署包含/排除App_Data。
是否有合理的方法使部署软件包包括App_Data文件夹/文件? 或者使用Azure存储是否是更好的选择?(成本和性能方面)
我使用的是Visual Studio 2013和Azure SDK 2.2。
更新: - 发现App_Data文件实际上是在/bin/App_Data下部署的!所以他们在那里。 - 实际上最终将文件移动到存储blob内,并将其在Azure服务器上的应用程序启动时复制到本地存储区域。这极大地减小了部署软件包的大小,因为静态文件没有被打包在软件包中。

在项目资源管理器树中,“生成操作”是否设置为“内容”? - sharptooth
一般而言,任何大小超过几 MB 的文件都应该存储在存储设备中。 - Greg D
我对当前设置中的/bin/App_Data不确定,我不建议依赖它。请查看我的下面回复。 - Toolkit
3个回答

9
如果App_Data不为空,则会发布到Azure网站,并且您可以通过以下方式访问:
var folder = Server.MapPath("~/App_Data/");

您还可以创建文件夹并在其中编写文件

var folder = Server.MapPath("~/somefolder/");
Directory.CreateDirectory(folder);
var path = folder + "file.txt";
File.AppendAllText(path, "some text");

1
我遇到了同样的问题。在部署我的服务后,我在Azure服务器上对本地目录进行了递归搜索(string appRoot = Environment.CurrentDirectory;),发现存储的文件位于E:\\approot\\App_Data\\<file name>下,然后我使用了以下代码:appRoot = Path.Combine(appRoot + @"\", @"App_Data\<file name>t");

1
appRoot = Path.Combine(appRoot + @"", @"App_Data\file name"); 应用程序根目录 = Path.Combine(appRoot + @"", @"App_Data\文件名"); - user3409225

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接