WCF使用Net.TCP协议发布方法

WCF使用Net.TCP协议发布方法:

1、跟发布网站的一样,发布服务。
2、程序池:高级-标识,改为内部的NetworkService用户。(只Win8需要修改。)
3、网站:绑定,在基本的http协议以为,再添加net.tcp协议。(此处出错,修改方法见下面。)
4、网站:高级--启用的协议,添加:http,net.tcp 即可!
5、最后,网站,内容视图,找到**.svc文件,右键浏览。----测试OK!

引用服务地址:

      http://win-abc:803/WcfServiceLibraryNetTCP.MyService.svc?wsdl

   或者:
      http://win-abc:803/WcfServiceLibraryNetTCP.MyService.svc (远程IP + *.svc文件)均可!

      并且:在IE浏览器中输入WCF连接字符串,可以显示服务信息的!!

 

常见错误:

1、添加net.tcp协议,报错 "未将对象引用设置到对象的实例。"

解决办法:

目录:C:\Windows\System32\inetsrv\config\applicationHost.config文件。
先备份一下,然后再修改此文件。

搜索到站点名称:WcfServiceLibraryNetTCP,然后添加绑定即可:(net.TCP协议默认端口:808)
<binding protocol="net.tcp" bindingInformation="808:*" />

2、找不到具有绑定 NetTcpBinding 的终结点的与方案 net.tcp 匹配的基址。注册的基址方案是 [http]。

网站:高级--启用的协议,添加:http,net.tcp 即可!


3、IIS WCF服务已经部署成功,但客户端调用时,出现错误:----很重要!!

无法调度消息,因为终结点地址“net.tcp://win-fj7u5gte0bm/WcfServiceLibraryNetTCP.Service1.svc/Service1”上的服务对该
地址的协议不可用。

    解决方法:查找了大量的方法,但是都没有解决,最终发现是修改 net.tcp协议的端口,由808,改为809(可自定义)后,完美解
决!!

4:HTTP 错误 500.0 - Internal Server Error --(基础问题,普通Web网站也出现,与WCF无关!)
调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.dll" 上

    解决方法:加载库失败,在程序池--高级设置--启用32位程序,设为true即可。

 

5:远程添加服务引用时,出错: --(基础问题,HTTP的WCF也出现。)

下载“http://Server:801/Service.CService.svc/_vti_bin/ListData.svc/$metadata”时出错。
请求失败,HTTP 状态为 400: Bad Request。
元数据包含无法解析的引用:“http://server:801/Service.CService.svc”。
没有终结点在侦听可以接受消息的 http://server:801/Service.CService.svc。这通常是由于不正确的地址或者
SOAP 操作导致的。如果存在此情况,请参见 InnerException 以了解详细信息。
远程服务器返回错误: (400) 错误的请求。
如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。

    解决方法:是引用的地址不识别。
       将引用的地址由http://Server:801/Service.CService.svc
       改为IP地址:http://192.168.0.10:801/Service.CService.svc 即可!

       这种情况,通常是在HTTP协议绑定时,设置了IP或主机名导致的,当IP和主机名都为空时,用主机名和IP地址都可以连接!!

 

posted on 2015-11-10 15:53  晴空  阅读(965)  评论(0编辑  收藏  举报

导航