azure - Azure WorkerRole 可以检测到它所在的位置吗?

标签 azure azure-sql-database

我的问题的意思是:是否可以检测辅助角色部署在哪个数据中心?我正在尝试以编程方式确定我的辅助角色是否位于北美和欧洲 Azure 数据中心,以便连接到位于同一地理位置的数据库。

比如有没有环境变量?或者也许我可以根据公共(public) IP 地址获取此信息?我愿意接受任何替代方案。

我问这个问题的原因是因为我想在北美数据中心部署完全相同的辅助角色,并在欧盟和最终亚太地区部署它,但我希望该角色连接到最近的数据库。我试图避免必须在 .CFG 中手动指定连接字符串,因为我担心有一天有人会将代码部署到 EU 并忘记调整连接字符串。我的目标是让所有连接字符串都出现在 .CFG 中,并且我的辅助角色足够聪明,能够根据其位置选择合适的连接字符串。

最佳答案

是的,但您必须使用服务管理 API。要在没有任何配置设置的情况下执行此操作,您需要首先枚举托管服务,然后为每个调用获取托管服务属性 (http://msdn.microsoft.com/en-us/library/ee460806.aspx)。您需要将 RoleEnvironment 中的 DeploymentId 与此响应中的 PrivateId 相匹配。这会告诉您正在运行哪个托管服务。在同一个响应中还有位置。

现在,有一个更简单的方法。只需将值放入 ServiceConfiguration 中,并根据部署的不同而有所不同!

关于azure - Azure WorkerRole 可以检测到它所在的位置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6373942/

相关文章:

azure - 如何在 Azure 数据工厂 V2 中设置项目级别参数

azure - SQL Azure 兼容性级别会影响性能吗?

sql-server - 如何为azure blob存储中的数据创建外部表

Azure - 更改 WebJob 详细信息日志的时区

azure - 为什么我在尝试连接 Azure Aql 服务器时只启用了 Azure Active Directory 身份验证?

c# - 如何使用 .net webapi 保存对象

C#:更改 Entity Framework 的检索数据类型

visual-studio - 在哪里下载我的 Azure SQL 项目的发布配置文件?

c# - Azure 服务结构 : not accepting normal or portable class libraries

.net 8 预览版 Linux 上托管的 Azure 应用服务无法启动,显然要求安装 8.0.0-rc