Connecting WCF from Webpart

Posted by Bhaskar on Stack Overflow See other posts from Stack Overflow or by Bhaskar
Published on 2010-04-20T06:27:41Z Indexed on 2010/04/20 9:03 UTC
Read the original article Hit count: 604

Filed under:
|
|
|

I am consuming a WCF Service from a webpart in Sharepoint 2007. But its giving me the following error:

There was no endpoint listening at http://locathost:2929/BusinessObjectService that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. ---> System.Net.WebException: The remote server returned an error: (404) Not Found.

My Binding Details in the WCF web.config is:

<system.serviceModel>
    <diagnostics performanceCounters="All">
      <messageLogging logEntireMessage="true" logMessagesAtServiceLevel="false"
        maxMessagesToLog="4000" />
    </diagnostics>
    <services>
      <service behaviorConfiguration="MyService.IBusinessObjectServiceContractBehavior"
        name="MyService.BusinessObjectService">
        <endpoint address="http://localhost:2929/BusinessObjectService.svc"
          binding="wsHttpBinding" contract="MyService.IBusinessObjectServiceContract">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MyService.IBusinessObjectServiceContractBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

My binding details in the Sharepoint site web.config is:

<system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="WSHttpBinding_IBusinessObjectServiceContract"
                    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="Mtom" 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="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                algorithmSuite="Default" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:2929/BusinessObjectService.svc"
          binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IBusinessObjectServiceContract"
          contract="BusinessObjectService.IBusinessObjectServiceContract"
          name="WSHttpBinding_IBusinessObjectServiceContract">
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>

I am able to view the WCF (and its wsdl) in browser, using the URL given in the end point. So, I guess the URL is definately correct. Please help !!!

© Stack Overflow or respective owner

Related posts about c#

Related posts about wcf