WCF的一些坑

1、错误信息:

添加服务失败。服务元数据可能无法访问。请确保服务正在运行并且正在公开元数据。

原因:如果修改了接口和类的名称,那么就需要去命名空间对应的svc文件中,手动修改相应的这个值。原来的Service1不可用。

同样:如果你在这里没改,那么发布之后,你需要到发布的svc文件中也修改这个名称。否则客户端还是无法访问。



2、发布之前,一定要在本地编译运行没问题再发布。




3、IIS无法启动

 端口被占用,将端口,修改为其他大于10000的号。

 点击启动之后:进入客户端输入:

 http://192.168.1.119:15000/WcfTest.svc

这个ip和端口号,应该是你配置的服务器的。

在客户端上输入之后,显示如此,说明服务配置成功。



4、.Net FrameWork控制台应用

按照提示的代码去新建一个.Net FrameWork控制台应用。WCF就用.Net FrameWork控制台应用。不要建.NetCore。

右键【引用】【添加服务引用】

 在地址中,参照第一个地址。右键【复制链接】。

 参照代码在程序中实例化,然后开始调用服务端方法。

 引用,执行程序。

Console.WriteLine("尝试发送。");
WcfTestClient proxy = new WcfTestClient();     // 这个类参照你打开的网页中代码。
string strMsg = proxy.GetData(888);
string sendSomethingRes = proxy.SendData(9000, "九千岁");
Console.WriteLine("发送成功,接受返回值。");
Console.WriteLine(strMsg);
Console.WriteLine(sendSomethingRes);
Console.ReadKey();




 5、Standard2.0而不是2.1

如果是将.NetCore的类库搬迁过来,那么最好新建Standard的库,最好

 而且:目标框架选择2.0版本。2021年12月28日,2.1版本实测部分库用不了。




 6、引用类库之后:web.config出错。

 新引用类库,然后编译:直接报错。

修改ServiceDebug为true

解决方案:修改时,不要将程序处于调试状态。否则报web.config错误。



7、调用服务失败。

解决方案: 服务端更新服务,但是客户端,并未重新加载服务。【更新服务引用

 

 


版权声明:本文为xiaoyaolangwj原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。