gpt4 book ai didi

c# - WCF 客户端和服务终结点使用相同的绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 17:02:44 25 4
gpt4 key购买 nike

我觉得这可能已经得到解答,也许我没有使用正确的术语进行搜索。

我有一个充当代理的 WCF 服务。它是两个服务的中间人,通常可以相互交谈,但现在通过这个新服务。

旧的:A -> B

新:A -> MM -> B

我需要将同一个合约公开为服务端点(“A”与“MM”对话)和客户端端点(“MM”与“B”对话)。

这两个可以共享一个绑定(bind)配置,只是给端点不同的名称吗?还是有更好的方法来处理这种情况?

(在 <system.serviceModel> 标签内)

<client>
<endpoint address="http://<remoteaddress>/" binding="basicHttpBinding"
bindingConfiguration="MyBinding" contract="IService" name="ToB" />
</client>
<services>
<service behaviorConfiguration="Behavior" name="Service">
<endpoint address="" binding="basicHttpBinding"
bindingConfiguration="MyBinding" name="FromA" contract="IService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/MyService" />
</baseAddresses>
</host>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="MyBinding" closeTimeout="00:15:00" openTimeout="00:15:00"
receiveTimeout="00:15:00" sendTimeout="00:15:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2048000000" maxBufferPoolSize="2048000000"
maxReceivedMessageSize="2048000000" messageEncoding="Text"
textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192"
maxArrayLength="4065536" maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None"
proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName"
algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>

编辑:

此设置的错误消息是:

com.vsp.cal.webservice.external.SystemFault

堆栈: 服务器堆栈跟踪:

   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)

at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)

at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)

at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

最佳答案

名称的更改不足以唯一定义端点。取而代之的是回到旧的“ABC”——地址、绑定(bind)、契约(Contract)。至少其中之一必须不同才能唯一定义新端点。 http://msdn.microsoft.com/en-us/library/ms733107(v=vs.100).aspx

这有帮助吗?

关于c# - WCF 客户端和服务终结点使用相同的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19414043/

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