gpt4 book ai didi

c# - 收到错误 : Contract requires Duplex, 但绑定(bind) 'BasicHttpBinding' 不支持它或未正确配置以支持它

转载 作者:太空狗 更新时间:2023-10-29 18:15:03 26 4
gpt4 key购买 nike

我有一个 WCF 服务和一个 Silverlight 5 客户端。我定义了以下接口(interface):

[ServiceContract(Namespace = "Silverlight", CallbackContract = typeof(IDuplexClient))]
public interface IDuplexService
{
[OperationContract]
void Subscribe(string userId);

[OperationContract]
void Unsubscribe(string userId);
}

[ServiceContract]
public interface IDuplexClient
{
[OperationContract(IsOneWay = true)]
void PushNotification(string msg);
}

这是我的 Web.config 文件:

<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>

当我尝试运行该服务时,我得到:

The service '/ServerService.svc' cannot be activated due to an exception during compilation. The exception message is: Contract requires Duplex, but Binding 'BasicHttpBinding' doesn't support it or isn't configured properly to support it.

我知道我需要向 Web.config 添加一些属性,但无论我看什么(无论我尝试什么)我都无法让它工作。

我是 WCF 的新手,我希望您能就该主题提供帮助。我所有的谷歌搜索都无济于事,在这里问同样问题的人得到的答案对我不起作用。

所以我决定放弃搜索,只问。

更新:我使用此链接创建界面 - http://msdn.microsoft.com/en-us/library/cc645027%28v=vs.95%29.aspx

最佳答案

如果那是 WCF 的 web.config 配置的范围,那么您缺少 定义您的契约(Contract)的部分:

<services>
<service name="WebApplication1.Service1">
<endpoint address="" binding="wsDualHttpBinding" contract="WebApplication1.IService1" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>

如果您确实指定了此部分,另一个可能的原因是契约(Contract)名称不是完全限定的;它必须包括完整的命名空间,而不仅仅是契约(Contract)的名称。

这是完整的 System.ServiceModel 配置:

  <system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service name="WebApplication1.Service1">
<endpoint address="" binding="wsHttpBinding" contract="WebApplication1.IService1" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>

在这种情况下,应用程序命名空间是 WebApplication1,服务的类名是 Service1(即 Service1.svc),Service1 实现的接口(interface)是 IService1。

关于c# - 收到错误 : Contract requires Duplex, 但绑定(bind) 'BasicHttpBinding' 不支持它或未正确配置以支持它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14225888/

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