【发布时间】:2011-09-29 19:04:08
【问题描述】:
好吧,我完全糊涂了,希望我在这里遗漏了一些非常明显的东西。我正在使用托管在使用“BasicHttpBinding”配置的 Windows 服务中的我的 WCF 服务(在 ASP.NET 中稳定且工作)。当我尝试从 Silverlight 4 应用程序中使用它时,我在 VS.NET 中收到以下错误:
*“自定义工具警告:位于地址“https://mywcfservice:8000/WCFServices/MyService”的端点“BasicHttpBinding_IMyService”与 Silverlight 4 不兼容。跳过... MyService\Reference.svcmap"*
什么!?我知道并且已经通过箍跳来制作一个有问题的netTCPBinding,它克服了SL4中的上述错误,但是为什么BasicHttpBinding在SL4上有任何问题?我认为自从 SL2 BasicHttpBinding 的第 1 天起,Silverlight 就可以使用该绑定了。这是我的 WCF 服务器 配置:
<service behaviorConfiguration="ServiceBehavior" name="MyService">
<endpoint address="" binding="basicHttpBinding"
bindingConfiguration="BasicHttpWindowsBinding"
contract="IMyService"/>
<endpoint address="mex"
binding="mexHttpsBinding"
contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="https://mywcfservice:8000/WCFServices/MyService"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="false"/>
<serviceMetadata httpsGetEnabled="true" httpGetEnabled="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpWindowsBinding"
maxReceivedMessageSize="214748"
messageEncoding="Mtom"
transferMode="Streamed">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
我在这里缺少什么?如果有人可以帮助我或指导可能不正确的地方,请告诉我。谢谢!
编辑:我认为我可能正在追踪 - 该服务使用“消息合同”作为方法中的参数,我想知道这是否会导致任何问题。但是,从这篇 MSDN 文章中:“Silverlight 4 支持消息合同” http://msdn.microsoft.com/en-us/library/cc896571(v=vs.95).aspx 所以我仍然不能 100% 确定。我在消费时选中了“始终生成消息合同”,但没有任何区别。
【问题讨论】:
-
Silverlight 和 WCF:link
标签: silverlight wcf