gpt4 book ai didi

wcf - 绑定(bind)在 "dual mode"中不起作用(webHttpBinding 和 basicHttpBinding)

转载 作者:行者123 更新时间:2023-12-04 13:35:47 25 4
gpt4 key购买 nike

我有一个 WCF 服务:

<%@ ServiceHost Language="C#" Debug="true" Service="IWW.MIGTurbo2.WCF.Security.SecurityBroker" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"   %>

使用我的网络项目中的 webHttpBinding 可以正常工作。

我还希望 WinForms 客户端可以使用此服务,因此添加了一个 basicHttpBinding 绑定(bind)。

我的服务器配置文件当前是:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<behaviors>
<endpointBehaviors>
<behavior name="webScriptEnablingBehavior">
<enableWebScript />
</behavior>
<behavior name="webHttpEnablingBehaviour">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="webHttpEnablingBehaviour">
<serviceMetadata httpGetEnabled="true" />
</behavior>
<behavior name="webScriptEnablingBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="IWW.MIGTurbo2.WCF.Security.SecurityBroker" behaviorConfiguration="webHttpEnablingBehaviour">
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
<!-- This works for web-clients -->
<endpoint address=""
binding="webHttpBinding"
bindingConfiguration="default"
contract="IWW.MIGTurbo2.WCF.Security.ISecurityBroker"
behaviorConfiguration="webHttpEnablingBehaviour">
</endpoint>
<!-- This is for WinForms clients, but isn't working -->
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="default"
contract="IWW.MIGTurbo2.WCF.Security.ISecurityBroker"
behaviorConfiguration="webHttpEnablingBehaviour">
</endpoint>
</service>
</services>
<client />
<bindings>
<webHttpBinding>
<binding name="default" ></binding>
</webHttpBinding>
<basicHttpBinding>
<binding name="default" allowCookies="true"></binding>
</basicHttpBinding>
</bindings>

标记为 WinForms 的部分似乎不起作用。我得到一个异常(exception):

The endpoint at 'http://localhost:56125/MIGTurbo2_WEB/api/wcf/SecurityBroker.svc' does not have a Binding with the None MessageVersion. 'System.ServiceModel.Description.WebHttpBehavior' is only intended for use with WebHttpBinding or similar bindings.



当我尝试使用 IE 手动浏览到 .svc 文件时。显然,WinForms 客户端不想知道。

任何人都可以解释为什么它不起作用吗?看起来好像我不能拥有多个端点,或者第二个端点配置不正确?谷歌没有提供任何特别有用的东西。

最佳答案

就像异常(exception)所说的那样,您的第二个端点具有 (1) webHttpBehavior 和 (2) basicHttpBinding,它们是不兼容的。我认为您可能只想从第二个端点删除 webHttpBehavior。

关于wcf - 绑定(bind)在 "dual mode"中不起作用(webHttpBinding 和 basicHttpBinding),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/877669/

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