Home > .NET > WCF Add Service Reference gotcha with Windows Server

WCF Add Service Reference gotcha with Windows Server

We recently switched from developing in Vista to Windows Server 2003. Someone had the bright idea that we should develop in the same environment the application is going to be hosted on. Go figure.

What that meant is that you run into wierd issues like this one. When trying to add a Service Reference to a WCF service hosted under IIS you keep getting this 'Add Service Reference Error':

Metadata contains a reference that cannot be resolved: 'http://merill/Services.Host/ClientProfile.svc?wsdl'.
The WSDL document contains links that could not be resolved.
There was an error downloading 'http://merill/Services.Host/ClientProfile.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/Services.Host/ClientProfile.svc'.
Metadata contains a reference that cannot be resolved: 'http://localhost/Services.Host/ClientProfile.svc'.
If the service is defined in the current solution, try building the solution and adding the service reference again.

The key part of this message is the reference to the downloading of the xsd. When I tried accessing the .svc url in a browser it worked fine, but trying to access the .svc?xsd=xsd0 brings up the generic 'cannot display webpage' message.

When you unleash your weapon (Process Monitor) on the csc.exe process (this is the compiler generating the xsd) you'll realise that the IIS identity IIS_WPG does not have access to the Windows\Temp folder. Give enough rights to the folder and viola problemo solved.

Happy WCF programming on Windows Server!

Categories: .NET Tags:
  • Ramesh Pydi
    i am also getting the same problem. I given full permissions on windows\Temp folders for IISUSers. still same error. please help me out !!
  • Aviad
    Worked for me, thanks!
  • emizzle
    Thanks, mate! Worked like a charm!
  • Eking
    Hi there- i got exactly the same problem but the solution provided here didnt help me... in my error it also says .....401: Access Denied....The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Negotiate,NTLM'....
    PLEASE HELP - IT CONSUMED MORE THAN A FEW WORK DAYS TO ME!!
    Thank you all in advance
  • Feng
    Thank you! You save my time! :-)
  • Charlie
    Thank you very much! I wouldn't have come to this solution on my own!
  • TC
    Thankyou! This solved my problem.
  • Sivaram
    Thanks a lot for the post. I had a similiar issue. Your solution resolved the issue.
  • Nick
    That was the most helpful article I have found on this issue. No way I would have thought of looking for directory permissions. Thanks.
  • Hey many thanks for this post, i've been hours trying to solve this problem, thanks again
  • 5he11
    thx a lot ! it helps
blog comments powered by Disqus