gpt4 book ai didi

azure - 有没有办法以编程方式确定 Azure DevFabric 中端点使用的实际 IP?

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

我在 Azure 开发结构下托管一个 IIS 应用程序。

将应用程序部署到 Azure 计算模拟器时,会创建一个临时 IIS 应用程序,该应用程序监听 5100 左右的端口。来自公共(public)终结点的传入请求将重定向到此端口。

不过,Azure 开发结构似乎并不总是使用项目配置中声明的公共(public)端口。因此,举例来说,我们的应用程序应该公开公共(public)端口 80——但是当我运行它时,它几乎总是端口 81,但有时是端口 82,等等。

这样我就可以确保在我的应用程序中创建的 URL 是正确的,我想知道这个外部端口是什么。

不幸的是,我不能简单地查看 Request.Url.Port,因为这是临时应用程序的端口号 - 通常为 5100。RoleEnvironment.CurrentRoleInstance.InstanceEndpoints >,也不起作用,因为它还会返回从服务器看到的端口,5100 及以下端口。

最佳答案

通过使用 Reflector 查看 csrun.exe 解决了这个问题。

看来 SDK DLL Microsoft.ServiceHost.Tools.DevelopmentFabric 是此问题的关键,特别是 FabricClient.GetServiceDeployments()FabricClient 方法.GetServiceInformation()。所以:


使用系统;
使用 Microsoft.ServiceHosting.Tools.DevelopmentFabric;



类程序
{
静态无效主(字符串[]参数)
{
FabricClient 客户端 = FabricClient.CreateFabricClient();

foreach(client.GetServiceDeployments() 中的字符串tenantName)
{
var information = client.GetServiceInformation(tenantName);
foreach(信息中的var项目)
{
Console.WriteLine(string.Format("{0} {1} {2} {3}", item.ContractName, item.InterfaceName, item.UrlSpecification, item.Vip));
}
}

Console.ReadLine();
}
}

我所追求的内容作为 item.Vip 返回。

请注意,显然,这仅适用于开发结构......但这就是我在这里寻找的,无论如何。

关于azure - 有没有办法以编程方式确定 Azure DevFabric 中端点使用的实际 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6710321/

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