如何使对本地磁盘的文件引用在 Azure 网站中工作?
How to make file references to local disk work in Azure Web Site?
在我的 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-directory 中查找 map.xml 文件。
最后一个告诉我们的上传控件上传文件的位置。我也许应该在这里使用 Azure Blob 存储,但这需要对我们的代码进行一些重大重构。
是否有关于此主题的最佳实践?
我们的 WebApp 今天 运行 投入生产,但我想试用 MS Azure。但我不想做很多代码更改以使其在 Azure 中运行。
我还读过您可以启动虚拟机(Windows 服务器),但这对我现在的需求来说太过分了。我们最终可能会那样做,但为了这个测试目的,它应该变得简单。
关于如何解决这个问题有什么建议吗?以前有人这样做过吗?我想有人有。确实。
如果我对我的网站的文件系统有读写权限,我也许可以使用这个:
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TheFolder");
这适用于内部部署和 Azure 部署。但是我必须对我们的代码做一些更改。
实际上,使用 Azure 网站不会有这种 "control"。要让你的应用保持原样,请使用 Azure 虚拟机。
您有多种选择:
选项 1:使用网络应用的 App Settings 为您的网站设置自定义设置。
选项 2:创建 web.config 的多个版本(Visual Studio 支持此操作)并将不同版本部署到 Azure 和本地计算机
选项 3:使您的路径相对于 Azure Web 应用程序环境变量的路径
您的 Azure Web 应用程序中有一个 HOME 环境变量,它解析为您站点的 inetpub 等效项。您的应用程序数据文件夹位于 %HOME%\site\wwwroot\AppData.
在 Azure Web 应用程序和您的本地计算机上还有一个 TEMP 环境。您可以相对于 TEMP 环境变量值进行第二个设置。
在我的 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-directory 中查找 map.xml 文件。 最后一个告诉我们的上传控件上传文件的位置。我也许应该在这里使用 Azure Blob 存储,但这需要对我们的代码进行一些重大重构。
是否有关于此主题的最佳实践?
我们的 WebApp 今天 运行 投入生产,但我想试用 MS Azure。但我不想做很多代码更改以使其在 Azure 中运行。 我还读过您可以启动虚拟机(Windows 服务器),但这对我现在的需求来说太过分了。我们最终可能会那样做,但为了这个测试目的,它应该变得简单。
关于如何解决这个问题有什么建议吗?以前有人这样做过吗?我想有人有。确实。
如果我对我的网站的文件系统有读写权限,我也许可以使用这个:
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TheFolder");
这适用于内部部署和 Azure 部署。但是我必须对我们的代码做一些更改。
实际上,使用 Azure 网站不会有这种 "control"。要让你的应用保持原样,请使用 Azure 虚拟机。
您有多种选择:
选项 1:使用网络应用的 App Settings 为您的网站设置自定义设置。
选项 2:创建 web.config 的多个版本(Visual Studio 支持此操作)并将不同版本部署到 Azure 和本地计算机
选项 3:使您的路径相对于 Azure Web 应用程序环境变量的路径
您的 Azure Web 应用程序中有一个 HOME 环境变量,它解析为您站点的 inetpub 等效项。您的应用程序数据文件夹位于 %HOME%\site\wwwroot\AppData.
在 Azure Web 应用程序和您的本地计算机上还有一个 TEMP 环境。您可以相对于 TEMP 环境变量值进行第二个设置。