Deploy WCF service in IIS 7.5

Manish Kumar picture Manish Kumar · Feb 6, 2013 · Viewed 17.6k times · Source

I am newbie to WCF. I am looking to steps to deploy WCF on IIS and consume the service. I have follow the steps same as to deploy the Website on IIS, also set the default document to Service1.svc

Now when I am trying to consume this wcf service it is giving me the following error.

Metadata contains a reference that cannot be resolved: 'http://manish-pc:8000/Service1.svc?wsdl'.
The WSDL document contains links that could not be resolved.
There was an error downloading 'http://manish-pc:8000/Service1.svc?xsd=xsd0'.
The underlying connection was closed: An unexpected error occurred on a receive.
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
An existing connection was forcibly closed by the remote host
Metadata contains a reference that cannot be resolved: 'http://localhost:8000/Service1.svc'.
Content Type application/soap+xml; charset=utf-8 was not supported by service http://localhost:8000/Service1.svc.  The client and service bindings may be mismatched.
The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'..
If the service is defined in the current solution, try building the solution and adding the service reference again.

Follwing is my Service Details in Web.Config file

<system.serviceModel>
    <services>
      <service behaviorConfiguration="DemoWCF.Service1Behavior" name="DemoWCF.Service1">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000/Service1.svc"/>
          </baseAddresses>
        </host>
        <endpoint address="http://localhost:8000/Service1.svc"
                  binding="basicHttpBinding"
                  contract="DemoWCF.IService1"
                  bindingConfiguration="basicBinding">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint> 
        <endpoint address="mex" 
                  binding="mexHttpBinding" 
                  contract="IMetadataExchange" />
      </service>
    </services>

    <bindings>
      <basicHttpBinding>
        <binding name="basicBinding" textEncoding="utf-8"></binding>
      </basicHttpBinding>
    </bindings>

    <behaviors>
      <serviceBehaviors>
        <behavior name="DemoWCF.Service1Behavior">
          <serviceMetadata httpGetEnabled="True" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

Please guide me where I'm lacking and what steps to make. Thanks.

Answer

Manish Kumar picture Manish Kumar · Feb 7, 2013

After search on google and watching videos. Finally I got the solution.

This error occur due to IIS configuration that I was not bother about.

  1. open your IIS Manager console.
  2. Make a separate applicaiton pool.
    a). Set .NET Framework version to 4.0
    b). Managed pipeline mode : Classic
  3. Set Applicaiton Pool Identity to "LocalSystem".
  4. Follow the steps same as to deploy a web application on IIS like creating a Virtual Directory.
  5. Creatig the Virtual Directory set that Application Pool you have created.

And consume the WCF Service in Client application.

Click here to watch the video

Kindly Update this question / answer thread, if you find more about this.
Thanks :)