Silverlight WCF RIA Service也遭遇了一次编码问题

这是一次血的教训: 足足花了我两个小时来调试这个问题,Silverlight应用在开发机器正常,发布到服务器后就出现了问题。

其实有一个问题浪费了我大部分时间,那就是:Silverlight的Xap缓存问题。刚开始没有注意,以为刷新了就会下载到新的xap文件到浏览器,可是修改了多次程序后,还提示同样的错误,于是删除浏览器临时文件,并通过MessageBox框定位到问题所在:一个DomainService的查询操作总是返回null,这个操作需要一个参数,可这个参数通常是中文!这才恍若大悟,这不是我经常犯的编码问题吗?

马上配置web.config:

<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>

问题终于解决了。

注:服务器上root的web.config居然配置成gb2312了,弄得我三反两次的出莫名奇妙的问题,这可是血的教训啊!

其实,WCF RIA也是通过URL请求来取参数的,IE9下F12可以捕捉到网络请求:

/AppName/ClientBin/AppName-Web-Services-DomainService.svc/binary/GetWWR_Addr?addr=test中文utf-8编码    GET    200    application/msbin1    .53 KB    31 ms        71511    16    15    0    0    437

还是Get请求,只不过类型是application/msbin1,后端WCF的数据通讯和普通的Asp.net很相似。有兴趣的可以看一下SubmitChanges的请求正文,好像是silverlight专有的格式。

转载于:https://www.cnblogs.com/slmk/archive/2012/01/14/2322497.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值