WPF程序调用WCF服务

Dear200892 2020-04-23 02:23:10
有人让我测试一下服务数据是否正确,但是人家那边没有开发环境。
我就打算自己写一个测试程序。
我添加了服务应用,图二是我写的后台代码。
图一是我的config文件配置,但总是提示我【不支持内容类型 text/xml; charset=utf-8。客户端和服务绑定可能不匹配
相同的代码,我这测试程序出错,我就怀疑是config文件配置错了。
这个错在哪?



...全文
486 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dear200892 2020-07-08
  • 打赏
  • 举报
回复
最后选择了WSHttpBinding

WSHttpBinding wshb = new WSHttpBinding(SecurityMode.None);
wshb.TransactionFlow = true;
wshb.MaxReceivedMessageSize = 2147483646;
wshb.MaxBufferPoolSize = 2147483646;
wshb.ReaderQuotas.MaxDepth = 32;
wshb.ReaderQuotas.MaxStringContentLength = 52428800;
wshb.ReaderQuotas.MaxArrayLength = 52428800;
wshb.ReaderQuotas.MaxBytesPerRead = 52428800;
wshb.ReaderQuotas.MaxNameTableCharCount = 16384;
wshb.Security.Message.ClientCredentialType = System.ServiceModel.MessageCredentialType.Windows;
wshb.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.Windows;
bindinginstance = wshb;
Dear200892 2020-04-26
  • 打赏
  • 举报
回复
引用 12 楼 以专业开发人员为伍 的回复:
你要确定一下你的所谓 basicHttpBinding 是否匹配人家的服务协议类型。需要更多服务端的技术信息。
换成WSHttpBinding倒是可以
Dear200892 2020-04-26
  • 打赏
  • 举报
回复
引用 10 楼 E次奥 的回复:
是不是messageEncoding 和 textEncoding 设置的不对?
messageEncoding 的值我都试过一遍
  • 打赏
  • 举报
回复
你要确定一下你的所谓 basicHttpBinding 是否匹配人家的服务协议类型。需要更多服务端的技术信息。
  • 打赏
  • 举报
回复
首先你确定一下对方到底是不是标准的WCF服务,其次你确定一下对方是不是 jsp 开发的。
E次奥 2020-04-26
  • 打赏
  • 举报
回复
是不是messageEncoding 和 textEncoding 设置的不对?
Dear200892 2020-04-26
  • 打赏
  • 举报
回复
引用 8 楼 E次奥 的回复:
你这问题网上有一些答案,你参考一下; 不过wcf做成windows服务比较好; https://www.cnblogs.com/leftfist/p/4257918.html https://www.bbsmax.com/A/obzbMV1ydE/
其实最重要的还是【不支持内容类型 text/xml; charset=utf-8。客户端和服务绑定可能不匹配】,实在是不明白!
E次奥 2020-04-26
  • 打赏
  • 举报
回复
你这问题网上有一些答案,你参考一下;
不过wcf做成windows服务比较好;
https://www.cnblogs.com/leftfist/p/4257918.html
https://www.bbsmax.com/A/obzbMV1ydE/
Dear200892 2020-04-26
  • 打赏
  • 举报
回复
引用 6 楼 秋的红果实 的回复:
建议改变思路,wcf不容易入手,短期不行 只是测试数据,不如使用socket,查查网上资源
有案例吗?
Dear200892 2020-04-24
  • 打赏
  • 举报
回复
引用 3 楼 jhonsonzhang 的回复:
测试服务端webapi,你用WPF干嘛,当然也可以。最高效的直接用core console测试就可以啊。测试通过后,生成netstand类库,可以放到所有前端去进行测试。
我就会点wpf,配置下输入参数,调用服务,我是这么想的
秋的红果实 2020-04-24
  • 打赏
  • 举报
回复
建议改变思路,wcf不容易入手,短期不行 只是测试数据,不如使用socket,查查网上资源
jhonsonzhang 2020-04-23
  • 打赏
  • 举报
回复
最后你可以做成1个SPA,部署到服务器,还可以装个B,告诉对方,我没时间测试,发个链接给你们,你们自己打参数,看返回的json结果。再高级一点封装成apk 和部署到appstore.。请他们自行手机测试。
jhonsonzhang 2020-04-23
  • 打赏
  • 举报
回复
测试服务端webapi,你用WPF干嘛,当然也可以。最高效的直接用core console测试就可以啊。测试通过后,生成netstand类库,可以放到所有前端去进行测试。
Dear200892 2020-04-23
  • 打赏
  • 举报
回复
引用 1 楼 秋的红果实 的回复:
看样子是客户端的配置文件 <client>节,address属性值,localhost后面没有端口号吗? 既然不需要安全验证,直接写<security mode="None" />即可,里面如<message子节都删除 contract是契约,确认webreportsvc是个接口 还有name值和binding节的name值相同了,此处的name可以省略,不省略,也要起一个别的名字 wcf的配置文件很复杂,一般用系统默认生成的,稍加改动
basichttpbinding是我照网上资料改的 address是我直接浏览iis上的网址,自动生成的是我的账号 我对配置两眼黑....
秋的红果实 2020-04-23
  • 打赏
  • 举报
回复
看样子是客户端的配置文件 <client>节,address属性值,localhost后面没有端口号吗? 既然不需要安全验证,直接写<security mode="None" />即可,里面如<message子节都删除 contract是契约,确认webreportsvc是个接口 还有name值和binding节的name值相同了,此处的name可以省略,不省略,也要起一个别的名字 wcf的配置文件很复杂,一般用系统默认生成的,稍加改动

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧