如何在Azure网站中对本地磁盘进行文件引用?

时间:2015-08-28 13:35:29

标签: c# asp.net azure azure-web-sites

在我的Azure网站中,我在Web.Config的AppSettings部分中有一些对磁盘上文件的引用。部署到Azure时,这些引用不再计算在内。我知道您可以在Azure环境中覆盖Web.Config中的AppSettings。但那里的文件结构是什么?

我必须解决的web.config中的几个例子:

<add key="DataMapPath" value="d:\inetpub\MyWebApp\App_Data\map.xml"/>
<add key="CuteWebUI.AjaxUploader.TempDirectory" value="C:\Temp\WebApp\Attachments\UploaderTemp"/>

第一个文件告诉我们的代码在App_Data目录中查找map.xml文件。 最后一个告诉我们upload-controll上传文件的位置。我可能应该在这里使用Azure Blob存储,但这需要对我们的代码进行一些重大的重构。

这个主题是否有最佳实践?

我们的WebApp今天正在投入生产,但我想试用MS Azure。但我不想做很多代码更改,以使其在Azure中工作。 我还读过你可以启动虚拟机(Windows Server),但这对我现在的需求来说太过分了。我们最终可能会这样做,但为了这个测试目的,它应该变得简单。

有关如何解决此问题的任何建议?之前有人这样做过吗?我猜有人有。确实

如果我对我的网站的文件系统有读写权限,我可以使用它:

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TheFolder");

这适用于内部部署和Azure部署。但是我必须在代码中做一些更改。

2 个答案:

答案 0 :(得分:1)

您有多种选择:

选项1:使用网络应用的App Settings为您的网站设置自定义设置。

选项2:创建web.config的多个版本(Visual Studio支持此版本)并将不同版本部署到Azure和本地计算机

选项3:使路径相对于Azure Web App环境变量的路径

Azure Web App中有一个HOME环境变量,它解析为相当于您站点的inetpub。您的应用数据文件夹位于%HOME%\ site \ wwwroot \ AppData。

Azure Web Apps和本地计算机上都有一个TEMP环境。您可以相对于TEMP环境变量值进行第二次设置。

答案 1 :(得分:-1)

实际上你不会有这种&#34;控制&#34;使用天蓝色的网站。要使您的应用保持原样,请使用Azure虚拟机。