是什么原因导致azure网站忽略web.config中的设置?

时间:2017-02-06 09:52:39

标签: azure web-applications web-config

我的web.config在" appSettings"中包含多个条目。 (例如:twilio帐户密钥)。其中一个是asp.net图表控件。它是配置部分,用于说明控件生成的图像的存储位置。

所有这些设置都适用于我的开发机器。也就是说,我可以连接到twilio,图表控件将图像存储在内存中(根据设置应该如此)。

当我将网站发布到我的azure网站(使用vs)时,所有设置都可以从图表控件中运行,分开。图表控件的行为就像设置即使在那里一样。 (默认为c:\ TempImageFiles用于存储)。

我查看了web.config的已发布版本,设置就在那里。只是,它被忽略了。

我的下一次尝试是使用门户网站添加该设置。 (可以使用门户网站为网络应用添加appSettings)。我将完全相同的设置从web.config复制到门户网站设置中。这很有用,所以设置中的内容没有任何问题。

所以我的问题是:当应用程序在azure Web应用程序中运行时,为什么会忽略web.config中的某些(至少这一个)设置?

2 个答案:

答案 0 :(得分:1)

您可能在Web App的配置中定义了应用设置,其名称相同,但会覆盖web.config设置。通常这样做是为了将生产设置存储在Azure而不是Web.config中。

您可以通过在新门户中打开Web应用程序的刀片,然后选中应用程序设置标签来确认是否是这种情况。

答案 1 :(得分:0)

azure网站/ azure web app服务是在azure PaaS基础架构上运行的典型Web应用程序。因此,可以从应用程序访问分配给服务的任何存储。但它不能是典型的C:或D:在常规服务器中,应用程序可能具有完全访问权限。主要是C:空间分配给IIS主机。 D:\ local是您可以使用的东西,因为该应用程序将具有完整的读写访问权限。

请参阅azure web app service沙箱详细信息here

如果您通过代码访问路径,请尝试使用Server.MapPath属性来访问路径。 Path.GetTempPath()之类的选项不起作用。

需要注意的一点是,azure PaaS服务中的任何本地存储都将被视为临时存储。每当站点,服务或角色回收存储时,将会分配新的存储空间。