none
baseAddress 用 本机ip地址设置后 用 netstat -an 查看没有响应的端口,只能用localhost么? RRS feed

  • 问题

  • baseAddress 用 本机ip地址设置后  用 netstat -an 查看没有响应的端口,只能用localhost么? 
    服务器端配置如下 :
    <system.serviceModel>
        <services>
          <service name="WCFTcp.CrewClass" behaviorConfiguration="metadataSupport">
            <host>
              <baseAddresses>
                <add baseAddress="net.tcp://localhost:8000/TcpBinding"/>
              </baseAddresses>
            </host>
            <endpoint contract="WCFTcp.ICrewClass" name="NetTcpBinding_ICrewClass" binding="netTcpBinding"/>
            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
          </service>
          <service name="WCFTcp.OAClass" behaviorConfiguration="metadataSupport">
            <host>
              <baseAddresses>
                <add baseAddress="net.tcp://localhost:8001/"/>
              </baseAddresses>
            </host>
            <endpoint contract="WCFTcp.IOAClass" name="NetTcpBinding_IOAClass" binding="netTcpBinding"/>
            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
          </service>
          <service name="WCFTcp.ShipOA" behaviorConfiguration="metadataSupport">
            <host>
              <baseAddresses>
                <add baseAddress="net.tcp://localhost:8002/TcpBinding"/>
              </baseAddresses>
            </host>
            <endpoint contract="WCFTcp.IShipOA" name="NetTcpBinding_IShipOA" binding="netTcpBinding"/>
            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
          </service>
        </services>
        <bindings>
          <netTcpBinding>
            <binding name="NetTcpBinding_ICrewClass" maxConnections="20">
              <security mode="None"/>
            </binding>
            <binding name="NetTcpBinding_IOAClass" maxConnections="20">
              <security mode="None"/>
            </binding>
            <binding name="NetTcpBinding_IShipOA" maxConnections="20">
              <security mode="None"/>
            </binding>
          </netTcpBinding>
        </bindings>
        <behaviors>
          <serviceBehaviors>
            <behavior name="metadataSupport">
              <serviceMetadata httpGetEnabled="False"/>
              <serviceDebug includeExceptionDetailInFaults="false"/>
              <serviceThrottling maxConcurrentCalls="10" maxConcurrentInstances="5" maxConcurrentSessions="5"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>
    wcf新手希望高手多多指教~~~
    2011年12月24日 3:15

答案

  • 原来是 endpoint 没加   bindingConfiguration 导致 security 不一致~~~

    如果用wsHttpBinding的绑定在局域网两台机器做测试地址一定要用ip,并且iis绑定的主机名也设成本机ip,不能为空,为空的话就是机器名


    哦天哪 给我一个能用的 system.serviceModel配置吧~~
    • 已标记为答案 星展 2011年12月25日 6:33
    2011年12月25日 6:33

全部回复

  • 哦~~虽然 netstat -an没有显示端口,但是客户端更新引用的服务是可以的,调用服务方法时报错

    套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:00:59.9389965”。

    这是怎么回事?~~~

    服务器端配置

     

      <system.serviceModel>

        <services>

          <service name="WCFTcp.OAClass" behaviorConfiguration="metadataSupport">

            <host>

              <baseAddresses>

                <add baseAddress="net.tcp://172.17.1.102:8001/TcpBinding"/>

              </baseAddresses>

            </host>

            <endpoint contract="WCFTcp.IOAClass" name="NetTcpBinding_IOAClass" binding="netTcpBinding"/>

            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>

          </service>

        </services>

        <bindings>

          <netTcpBinding>

            <binding name="NetTcpBinding_IOAClass" maxConnections="20">

              <security mode="None"/>

            </binding>

          </netTcpBinding>

        </bindings>

        <behaviors>

          <serviceBehaviors>

            <behavior name="metadataSupport">

              <serviceMetadata httpGetEnabled="False"/>

              <serviceDebug includeExceptionDetailInFaults="false"/>

              <serviceThrottling maxConcurrentCalls="10" maxConcurrentInstances="5" maxConcurrentSessions="5"/>

            </behavior>

          </serviceBehaviors>

        </behaviors>

      </system.serviceModel>

    客户端配置

     

     <system.serviceModel>

            <bindings>

                <netTcpBinding>

                    <binding name="NetTcpBinding_IOAClass" closeTimeout="00:01:00"

                        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"

                        transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"

                        hostNameComparisonMode="StrongWildcard" listenBacklog="10"

                        maxBufferPoolSize="52428800" maxBufferSize="65536" maxConnections="10"

                        maxReceivedMessageSize="6553600">

                        <readerQuotas maxDepth="32" maxStringContentLength="819200" maxArrayLength="9163840"

                            maxBytesPerRead="409600" maxNameTableCharCount="1638400" />

                        <reliableSession ordered="true" inactivityTimeout="00:10:00"

                            enabled="false" />

                        <security mode="None"></security>

                    </binding>

                </netTcpBinding>

            </bindings>

            <client>

                <endpoint address="net.tcp://172.17.1.102:8001/TcpBinding" binding="netTcpBinding"

                    bindingConfiguration="NetTcpBinding_IOAClass" contract="OAService.IOAClass"

                    name="NetTcpBinding_IOAClass">

                </endpoint>

            </client>

        </system.serviceModel>

     

     


    哦天哪 给我一个能用的 system.serviceModel配置吧~~
    • 已编辑 星展 2011年12月24日 6:05
    2011年12月24日 6:04
  • 原来是 endpoint 没加   bindingConfiguration 导致 security 不一致~~~

    如果用wsHttpBinding的绑定在局域网两台机器做测试地址一定要用ip,并且iis绑定的主机名也设成本机ip,不能为空,为空的话就是机器名


    哦天哪 给我一个能用的 system.serviceModel配置吧~~
    • 已标记为答案 星展 2011年12月25日 6:33
    2011年12月25日 6:33