gpt4 book ai didi

c# - 配置 WCF 客户端终结点以使用相对地址(对于 Azure)

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

我有一个 Windows Azure 云服务项目,其中包含多个 Web 角色来托管一些服务。我想使用 相对 URL 在 ServiceY 中使用 ServiceX(每个服务在不同的角色上运行)。

这就是我托管 ServiceX 的方式:

<service name="ServiceX">
<endpoint address="" binding="basicHttpBinding" contract="ServiceX" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>

现在我想在 ServiceY 中使用该服务。使用绝对 URL 可以正常工作:

<system.serviceModel>
<client>
<endpoint name="ServiceXProxy"
address="http://mycloudservice.cloudapp.net:8080/ServiceX.svc"
binding="basicHttpBinding"
contract="ServiceX"/>
...

但是如何在 ServiceY 中使用具有相对地址的 ServiceX 呢?难道这不可能吗,因为它们运行在同一个云服务上?

最佳答案

您可以以编程方式使用相对地址,但您仍然需要知道基地址(或仅使用 localhost:8080 作为基地址) - 不可能通过 使用相对地址web.config 除非您构建自定义配置或利用 AppSettings

// create bindings & endpoints
var baseAddress = System.ConfigurationManager.AppSettings["baseAddress"];
var binding = new System.ServiceModel.BasicHttpBinding();
var endpoint = new EndpointAddress(baseAddress + "/ServiceX.svc");

您还可以从 web.config 加载客户端端点地址,并使用 UriBuilder 覆盖基地址以实现类似的方法。

关于c# - 配置 WCF 客户端终结点以使用相对地址(对于 Azure),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026621/

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