注意:这与检测本地运行与 Azure 角色中运行的问题不同,据我所知,该问题已经得到解答。
我有一个部署到 Azure 的 APS.NET MVC 应用程序。我正在运行 Azure 工具的 V2.5。我希望能够检测代码运行在以下三种场景中的哪一种:
本地(在 IIS 上调试)、Azure 网站或 Azure Web 角色
我在其他帖子中看到使用以下内容的建议:
RoleEnvironment.IsAvailable
然而,这对于我的需求来说似乎是一个不完整的解决方案。它似乎可以毫无问题地检测代码是否在本地运行或作为网络角色运行。然而,它似乎没有涵盖检查作为天蓝色网站运行的场景。它不仅没有涵盖这一点,而且在 Azure 网站中运行时尝试检查该属性也会导致它崩溃:
mscorlib.dll 中发生了“System.IO.FileLoadException”类型的第一次机会异常
Additional information: Could not load file or assembly
'Microsoft.WindowsAzure.ServiceRuntime, Version=2.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
那么,谁能告诉我如何检测这三种情况?
我遇到的确定是否在 Azure 网站上运行的最佳方法是检查是否存在特定于 Azure 网站的环境变量,例如WEBSITE_SITE_NAME
。您可以先检查一下,如果该变量不存在,则继续RoleEnvironment.IsAvailable
check.
See 这个答案 https://stackoverflow.com/a/25695126/310446了解更多详情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)