在我的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部署。但是我必须在代码中做一些更改。
答案 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虚拟机。