gpt4 book ai didi

c# - 检测 .NET 应用程序是在 Azure 还是非 Azure 环境中运行

转载 作者:可可西里 更新时间:2023-11-01 09:08:57 25 4
gpt4 key购买 nike

我们目前正在将应用程序的一些实例迁移到 Azure,但仍将保持与非 Azure 托管的现有实例的向后兼容性。

有没有好的方法可以在非Azure生产服务器上不安装SDK的情况下检测环境?

我尝试过使用:

if (RoleEnvironment.IsAvailable)

来自 Microsoft.WindowsAzure.ServiceRuntime,它在本地和 Azure 中都能完美运行。但是,我需要将 Microsoft.WindowsAzure.ServiceRuntime.dll 设置为 CopyLocal,即使这样我也得到:

Could not load file or assembly 'msshrtmi, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies

似乎没有NuGet包,我不想手动复制msshrtmi dll。

也许有一种不依赖 Microsoft.WindowsAzure.ServiceRuntime 的检测方法?

最佳答案

不幸的是,解决此问题的最简单方法是从以下位置复制 msshrtmi.dll 文件:

C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\{版本}\bin\runtimes\base\x64

我知道复制 DLL 不太好,但这是您防止错误所需的唯一一个,并且它与您正在使用的 SDK 版本相关,因此在更新 SDK 之前不会更改.

一个可行的替代方案是在 appSettings 中添加配置值并应用 config transform当您为 Azure 构建应用程序时。

关于c# - 检测 .NET 应用程序是在 Azure 还是非 Azure 环境中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20656411/

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