none
给定关键字不在字典中 RRS feed

  • 问题

  • 自己写了一个WCF服务,用的是net.tcp协议,采用的自我寄宿的方式,并且服务已经启动,元数据地址为:net.tcp://127.0.0.1:4503/mex

    然后在VS里面添加了一个 Sliverlight Application,并选择了Add Service ReService 成功的找到了这个WCF服务,并已经生成了代理类。

    但是现在我在调用这个WCF时候在MainPage.xaml.cs的构造函数里初始化这个代理类 ChatClient prox = new ChatClien();就抛出异常“给定关键字不在字典中”,然后我再看

    ServiceReferences.ClientConfig文件,该文件内容为空。

    请问大家,造成我这个问题的原因是什么?


    I Belong To Jesus...
    2011年12月19日 9:01

答案

  • Daoping Liu 你好 你说的方法我已经试过了 还是不成功。但是我已经找到我的问题所在了。

    刚才查阅了一下MSDN文档,发现我遗漏了一个很重要的问题:

    由于 Silverlight 4 不支持具有安全性的 NetTcpBinding,因此使用此绑定配置发送的任何信息都未加密,并且可被第三方截获和修改。不要使用此绑定配置发送敏感信息。

    添加一个 <netTcpBinding> 元素,该元素带有一个嵌套的 <security> 元素(其 mode 设置为 None)。当前版本的 Silverlight 不支持具有安全性的 NetTcpBinding

    正确的配置应该加上:

    <bindings>
          <netTcpBinding>
                 <binding name="tcpBindingNoSecurity">
                        <security mode="None" />
                 </binding>
          </netTcpBinding>
    </bindings>
    

    MSDN文档地址:http://msdn.microsoft.com/zh-cn/library/cc645027%28v=VS.95%29.aspx

     


    I Belong To Jesus...
    2011年12月20日 6:45

全部回复

  • 你好,

    请尝试配置一下你的ServiceReferences.ClientConfig文件。

    你可以参考一下以下链接:

    http://blog.john-thiriet.com/en/2011/11/using-nettcpbinding-in-silverlight-with-iis/


    Daoping Liu - MSFT
    2011年12月20日 5:16
    版主
  • Daoping Liu 你好 你说的方法我已经试过了 还是不成功。但是我已经找到我的问题所在了。

    刚才查阅了一下MSDN文档,发现我遗漏了一个很重要的问题:

    由于 Silverlight 4 不支持具有安全性的 NetTcpBinding,因此使用此绑定配置发送的任何信息都未加密,并且可被第三方截获和修改。不要使用此绑定配置发送敏感信息。

    添加一个 <netTcpBinding> 元素,该元素带有一个嵌套的 <security> 元素(其 mode 设置为 None)。当前版本的 Silverlight 不支持具有安全性的 NetTcpBinding

    正确的配置应该加上:

    <bindings>
          <netTcpBinding>
                 <binding name="tcpBindingNoSecurity">
                        <security mode="None" />
                 </binding>
          </netTcpBinding>
    </bindings>
    

    MSDN文档地址:http://msdn.microsoft.com/zh-cn/library/cc645027%28v=VS.95%29.aspx

     


    I Belong To Jesus...
    2011年12月20日 6:45