开发者

WCF configuration netTCp , Endpoint is null

I am getting the following error

"The Address property on ChannelFactory.Endpoint was null. The ChannelFactory's Endpoint must have a valid Address specified."

and I am not sure what I am doing wrong. Does anybody see know what is the reson of it? Below are my project's App.config Server and Client Side Thank you for help, regards

 <system.serviceModel>
    <services>
      <service name="Server.DualService" behaviorConfiguration="NetTcpBehavior">
        <endpoint address=""
              binding="netTcpBinding"
              bindingConfiguration="DuplexBinding"
              contract="Server.IDualService" />

        <endpoint address="mex" binding="mexTcpBinding" contract="Server.IDualService" />
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:8731/Service/DualService/" />
          </baseAddresses>
        </host>
      </service>
      <service name="Server.PhoneService" behaviorConfiguration="Server.PhoneServiceBehavior">
        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="" contract="Server.IPhoneService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:4444/Service/PhoneService" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Server.DualServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="Server.PhoneServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />开发者_如何转开发;
        </behavior>
        <behavior  name="NetTcpBehavior">
          <serviceThrottling maxConcurrentSessions="10000" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <netTcpBinding>
        <binding name="DuplexBinding" sendTimeout="00:00:11">
          <reliableSession enabled="true" />
          <security mode="None" />
        </binding>
      </netTcpBinding>
    </bindings>
  </system.serviceModel>

CLIENT SIDE

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="DefaultBinding_IPhoneService" closeTimeout="00:01:00"
                openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="None">
                    <transport clientCredentialType="None" proxyCredentialType="None"
                        realm="">
                        <extendedProtectionPolicy policyEnforcement="Never" />
                    </transport>
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>
            <binding name="DefaultBinding_IDualService" closeTimeout="00:01:00"
                openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="None">
                    <transport clientCredentialType="None" proxyCredentialType="None"
                        realm="">
                        <extendedProtectionPolicy policyEnforcement="Never" />
                    </transport>
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>
        </basicHttpBinding>
        <wsHttpBinding>
            <binding name="WSHttpBinding_IPhoneService" closeTimeout="00:01:00"
                openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                allowCookies="false">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <reliableSession ordered="true" inactivityTimeout="00:10:00"
                    enabled="false" />
                <security mode="Message">
                    <transport clientCredentialType="Windows" proxyCredentialType="None"
                        realm="">
                        <extendedProtectionPolicy policyEnforcement="Never" />
                    </transport>
                    <message clientCredentialType="Windows" negotiateServiceCredential="true"
                        algorithmSuite="Default" establishSecurityContext="true" />
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>
    <client>
        <endpoint binding="basicHttpBinding" bindingConfiguration="DefaultBinding_IPhoneService"
            contract="IPhoneService" name="DefaultBinding_IPhoneService_IPhoneService" />
        <endpoint binding="basicHttpBinding" bindingConfiguration="DefaultBinding_IDualService"
            contract="IDualService" name="DefaultBinding_IDualService_IDualService" />
        <endpoint address="http://localhost:4444/Service/PhoneService"
            binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IPhoneService"
            contract="ServiceReference2.IPhoneService" name="WSHttpBinding_IPhoneService">
            <identity>
                <userPrincipalName value="PANDZIA-PC\PANDZIA" />
            </identity>
        </endpoint>
    </client>
</system.serviceModel>


There is some problem with your configuration. Server specifies DualService over net.tcp but client uses BasicHttpBinding and does not specify address. Also your client has configuration for more endpoint then your service expose and mex endpoint in DualService has incorrect contract (should be IMetadataExchange).

Only client endpoint for PhoneService looks correct.


Everything works, you were right :),Thank you once again , and below I am putting the correct configuration, maybe someday it will help to somebody, .. :D:D

On server side I ve corrected IMetadataExchange in endpoint :

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

and I changed alittle

<behavior  name="NetTcpBehavior">
      <serviceMetadata/>
      <serviceThrottling maxConcurrentSessions="10000" />
    </behavior>

On CLIENT SIDE I deleted most genereted code in retation with DualService and added

<endpoint name=""
              address="net.tcp://localhost:8731/Service/DualService/"
              binding="netTcpBinding"
              bindingConfiguration="DuplexBinding"
              contract="IDualService" />

where binding looks like :

<netTcpBinding>
        <binding name="DuplexBinding" sendTimeout="00:00:05" >
          <reliableSession enabled="true" />
          <security mode="None" />
        </binding>
      </netTcpBinding>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜