【问题标题】:What causes azure websites to ignore settings from web.config?是什么导致 azure 网站忽略 web.config 中的设置?
【发布时间】:2017-06-23 05:13:16
【问题描述】:

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

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

当我将网站发布到我的天蓝色网站(使用 vs)时,所有设置都有效,除了图表控件之一。图表控件的行为就像设置不存在一样。 (默认为 c:\TempImageFiles 进行存储)。

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

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

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

【问题讨论】:

    标签: azure web-applications web-config


    【解决方案1】:

    您可能在 Web 应用的配置中定义了一个 app 设置,该设置具有覆盖 web.config 设置的相同名称。这通常是为了将生产设置存储在 Azure 而不是 Web.config 中。

    您可以通过在新门户中打开 Web 应用的刀片并检查那里的 应用程序设置 选项卡来确认是否是这种情况。

    【讨论】:

    • 嗯,是的,它就在那里。虽然它没有图表控件的条目。正如我所说:只有在我将其添加到门户中的 appsettings 后,该设置才可用。
    【解决方案2】:

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

    请参考 azure web app service 沙箱详情here

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

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

    【讨论】:

    • 您关于 PaaS 服务中本地存储的观点不正确。即在网络应用程序中(您的答案的重点),本地存储是持久的并且所有网络应用程序实例都可以访问。并且本地存储在实例的添加和删除中仍然存在(尽管如果整个 Web 应用程序被删除,存储也会被删除)。对于虚拟机和云服务(网络/工作者角色实例),本地存储是短暂的/非持久的。
    • 嗯,首先,我认为本地存储不是临时存储。当您部署包括 web.config 在内的网站时,一切都保持可用。 (否则,该网站会消失,不是吗?)另外,我当然不会通过自己阅读文件来访问 web.config 中的 appsettings。我正在为此使用配置代码,这很有效。 (正如我所说,所有其他设置都可用,只有那个特殊设置不可用。)除此之外:我的代码甚至根本不会以任何方式读取该特殊设置:图表控件自己读取所有内容。
    • 我没有说它是暂时的,但我的意思是把它当作暂时的。如果由于某种原因实例被回收或删除,您将丢失存储的数据。而且最好有一个像 blob 存储这样的 out-proc 存储,这样它就可以在所有实例和其他相关应用程序中始终可用。
    • 对不起,但这不是真的,至少在我提到的情况下。我说的是作为网站一部分部署的 web.config 文件。即使实例被回收,它也绝对可用。如果不是这种情况,则没有 asp.net 网站可以在 azure 上运行。也许我的问题不够清楚:看来您正在尝试回答另一个问题:-)
    • 我不是在谈论 web.config。更多地谈论网站内的本地存储。此外,如果我通过远程连接到 web.config(在 web 角色中)进行一些更改,并且当角色回收时,更改将消失。我还没有尝试过使用网络应用服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 2011-03-28
    • 1970-01-01
    相关资源
    最近更新 更多