gpt4 book ai didi

azure - Azure 上的虚拟应用程序一夜之间 RoleEnvironment.IsAvailable == false

转载 作者:行者123 更新时间:2023-12-03 01:56:15 24 4
gpt4 key购买 nike

我的 Azure Web 角色部署中有以下配置:

<WebRole name="FrontOffice" vmsize="Small">
<Sites>
<Site name="Web">
<VirtualApplication name="mag_admin" physicalDirectory="../../Sites/BackOffice" />
<Bindings>
<Binding name="EndpointFrontOffice" endpointName="EndpointFrontOffice" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="EndpointFrontOffice" protocol="http" port="80" />
</Endpoints>

即虚拟目录 (VirtualApplication) 中的 FrontOffice MVC 3 Web 应用程序和 BackOffice MVC 3 Web 应用程序。

几周前我已升级到 SDK 2.0,但仍保留在 StorageClient 1.7 上,因为存在一些重大更改。有一段时间一切都很好。

上周一,突然(我检查并仔细检查了源代码管理以确保没有人更改配置),BackOffice 停止工作,因为“msshrtmi.dll”1.7 文件丢失。我认为它曾经位于 GAC 中(在我自己的机器上),但在 Azure 主机上实际上缺失了(仅存在 2.0)。我在我的 Web 应用程序引用中添加了 DLL,它起作用了。

但是现在...同一个 Web 应用程序提示它无法连接到 SQL Server,因为连接字符串错误。难怪,当它应该查看 Azure ServiceConfiguration 时,它会查看 web.config。我们有一个连接字符串提供程序,用于检查 RoleEnvironment.IsAvailable 是否返回 true,在这种情况下,它将从 ServiceConfiguration 获取连接字符串。对于 BackOffice,它现在返回 false。 FrontOffice 一切正常。

有谁知道上周末对 Azure 进行的一些更改是否可以解释这种突然的行为?

最佳答案

我终于明白发生了什么了。

当我升级到 Azure SDK 2.0 时,它仅更新 Azure Web 角色项目,而不更新 Web 应用程序项目,后者仍引用 SDK 1.7 DLL。

但是没有人注意到,并且它工作了一段时间。 Lukos 可能是对的:Microsoft 对他们的 VM 进行了一些更改,GAC 现在仅包含 2.0 的 DLL(因为我的部署目标是 2.0)。

我对我的 Web 应用程序进行了必要的更改(切换 DLL),现在一切都很好。

关于azure - Azure 上的虚拟应用程序一夜之间 RoleEnvironment.IsAvailable == false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17293490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com