2011-02-22

添加WCF Service作为Service Reference时遇到错误的解决办法

Posted in .NET at 11:42 Author:仲远

标签:

发布WCF Service有两个主要的办法:通过自我寄宿(Self-Hosting)的方式创建一个控制台应用作为服务的宿主(寄宿进程为Hosting.exe);通过IIS寄宿方式将服务寄宿于IIS中(寄宿进程为IIS的工作进行W3wp.exe)。其中,通过IIS寄宿方式,与添加Web Service类似,通过Publish的方式,发布一个Application/Virtual Website.

遇到的错误
在Windows Server 2008 SP2 + IIS7的环境下,通过IIS来发布WCF Service可能会遇到如下的错误:Service能够正常发布,但是在Client的程序中,添加Service Reference的时候(例如添加http://myserver/myservice/Service.svc),总是添加不上。提示的错误如下:“There was an error downloading ‘http://myserver/myservice/Service.svc?xsd=xsd0’”。

解决办法
编辑 C:\Windows\Temp 的访问权限,将 MyServer\IIS_IUSRS (可以直接输入全名,也可以在location中选择服务器名,再输入IIS_IUSRS,然后点击check name)添加到这个文件夹的security权限中,给这个用户添加List Folder Contents,Read&Execute,Read权限。

原因分析
你的http://myserver/myservice/Service.svc?wsdl 文件中包括了其它的一些schema文件,如http://myserver/myservice/Service.svc?xsd=xsd0?xsd=xsd1,…  因此需要给IIS或Application Pool相关的账户添加对C:\Windows\Temp 的相关访问权限。

本文可以自由转载,转载时请保留全文并注明出处:
转载自仲子说 [ http://www.wangzhongyuan.com/ ]
原文链接:

Leave a Comment

*
To prove you're a person (not a spam script), type the security text shown in the picture. Click here to regenerate some new text.
Click to hear an audio file of the anti-spam word