IIS发布WCF(补充网上的内容,附带源文件)
1.编译好WCF Service的Class Library,确保没有错误。
2.建立.svc文件,内容格式如下:
这里的Service,是你的Service名称,及其所属命名空间.
为了确保IIS能正确识别.svc文件,需要在IIS属性中检查,如果没有.svc类型,需要手动添加,如图:
3.在IIS发布WCF Service,将其目录设置为Web共享,并注意在IIS中,为该虚拟目录打开匿名访问的权限。
4.在工程中,添加Web.config文件。这里需要建立WCF Service服务段的配置信息,我们可以直接利用MS提供的配置工具方便进行配置,如图:
打开配置工具,根据配置向导,选择好Service Type 和Contract信息。在选择服务通讯方式的时候,我们需要选择http通讯方式(因为我们服务的宿主是IIS,所以应选择http方式)。在EndPoint中,填入Endpoint的地址。再选择添加一个Endpoint,address为mex,类型为mexHttpBinding,Contract填入IMetadataExchange。
5.为了能在IIS中测试发布的效果,我们需要允许从客户端通过http方式获取元数据,这样的选项WCF默认是false,所以我们还需要一点小设置:
在Service Behavior节点,单击右键,新建一个Service Behavior,单击Add按钮,添加一个Extention Position,名称为serviceMetadata,如图:
并在上面双击,在窗口中,把HttpGetEnabled选项设置为true,如图:
一切的准备工作就绪后,我们就可以通过IIS来访问测试我们的WCF Service了。如下图:
红色框中的部分,是我们设置了HttpGetEnabled的结果,否则是不会出现这一行的,它允许我们从客户端以WSDL方式获取其源数据。
以上为网上转来的内容,通过测试不知道网友是否出现:Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.
如果是,请看以下补充内容:
以上原因是因为我们没有设直身份验证,所以我们还要在配置文件web.config里添加一段代码:
<system.web>
<authentication mode="Windows"/>
</system.web>
这样问题已经解决了...
最后附上我自己写的源文件,可以在IIS发布调试。
下载地址:wcf.rar