none
关于加入对等网格的奇怪问题 RRS feed

  • 问题

  • 在服务器上提供自定义解析服务,二个客户端加入同一网格时,有时挺正常,能互相通讯。但有时,只有个一客户端会很顺利加入,更一客户端便无法加入了,但也不会报错,一般的表现就是要等好久,比如30秒才显示连接上了,但实际上这二个客户端谁也发现不了谁。

    求解。

    2014年7月8日 8:37

答案

  • 还有,在什么情况下,客户端必须要指定ListenIPAddress?

    你好,

    当WCF服务端的服务的终结点地址和监听地址不一致时, 客户端需要通过endpointBehavoir的clientVar指定监听IP地址。

    例如服务终结点:

    <services> <service name="Service.TestListenUrl" behaviorConfiguration="ListenUrlTestServiceBehavior"> <endpoint name="" address="http://localhost:30606/ListenUrlTest" contract="ITestListenUrlContract" binding="wsHttpBinding"

    listenUri="http://localhost:30607/ListenUrlTest" listenUriMode="Explicit" > </endpoint> </service> <services> <behaviors>

    <serviceBehaviors> <behavior name="ListenUrlTestServiceBehavior">

    <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:30606/ListenUrlTest/metadata" /> </behavior> </serviceBehaviors> </behaviors>

    则客户端需要指定监听地址来讲soap消息发送到正确的地址(监听地址)。

     <client>
                <endpoint address="http://localhost:30606/ListenUrlTest" binding="wsHttpBinding"   behaviorConfiguration="TestListenUrlBehavior"
                    bindingConfiguration="WSHttpBinding_TestListenUrlContract"
                    contract="TestListenUrl.TestListenUrlContract" name="WSHttpBinding_TestListenUrlContract">
                    <identity>
                        <userPrincipalName value="v-fuzh@fareast.corp.microsoft.com" />
                    </identity>
                </endpoint>
    </client>
    <behaviors>
            <endpointBehaviors>
              <behavior name="TestListenUrlBehavior">
                <clientVia viaUri="http://localhost:30607/ListenUrlTest"/>
              </behavior>
            </endpointBehaviors>
    </behaviors>

    谢谢!

    2014年7月10日 11:48
    版主

全部回复

  • 还有,在什么情况下,客户端必须要指定ListenIPAddress?
    2014年7月8日 8:43
  • 还有,我找到一个关于类似情况的解决方案,

    http://support.microsoft.com/kb/2521658/zh-cn

    不过是针对.net3的,

    我的自定义解析服务是.net4,是不是就不会存在.net3里的问题了?

    2014年7月8日 8:52
  • 还有,在什么情况下,客户端必须要指定ListenIPAddress?

    你好,

    当WCF服务端的服务的终结点地址和监听地址不一致时, 客户端需要通过endpointBehavoir的clientVar指定监听IP地址。

    例如服务终结点:

    <services> <service name="Service.TestListenUrl" behaviorConfiguration="ListenUrlTestServiceBehavior"> <endpoint name="" address="http://localhost:30606/ListenUrlTest" contract="ITestListenUrlContract" binding="wsHttpBinding"

    listenUri="http://localhost:30607/ListenUrlTest" listenUriMode="Explicit" > </endpoint> </service> <services> <behaviors>

    <serviceBehaviors> <behavior name="ListenUrlTestServiceBehavior">

    <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:30606/ListenUrlTest/metadata" /> </behavior> </serviceBehaviors> </behaviors>

    则客户端需要指定监听地址来讲soap消息发送到正确的地址(监听地址)。

     <client>
                <endpoint address="http://localhost:30606/ListenUrlTest" binding="wsHttpBinding"   behaviorConfiguration="TestListenUrlBehavior"
                    bindingConfiguration="WSHttpBinding_TestListenUrlContract"
                    contract="TestListenUrl.TestListenUrlContract" name="WSHttpBinding_TestListenUrlContract">
                    <identity>
                        <userPrincipalName value="v-fuzh@fareast.corp.microsoft.com" />
                    </identity>
                </endpoint>
    </client>
    <behaviors>
            <endpointBehaviors>
              <behavior name="TestListenUrlBehavior">
                <clientVia viaUri="http://localhost:30607/ListenUrlTest"/>
              </behavior>
            </endpointBehaviors>
    </behaviors>

    谢谢!

    2014年7月10日 11:48
    版主
  • 你好,

    终结点地址和监听地址是一样的。

    有没有可能跟teredo服务器有关?

    2014年9月28日 2:12