陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万

  1、 404 Not Found

  a. 检查服务器是否放了 ClientAccessPolicy.xml 文件。内容范例如下:


<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

 重点,跨域文件一定要放对地方,位置一定是网站根目录,比如你在根目录发布的是一个虚拟目录,那么这个文件在虚拟目录里是不行的,一定要在根目录(http://域名/clientaccesspolicy.xml 这样可以访问到才行),如果是虚拟的web服务器咋整,这个我也不知道怎么弄,晕。。。。。。。。。(只要http://域名/clientaccesspolicy.xml可以访问应该就可以)

 

配置文件少了一个http-request-headers="*"我调了两天 就是报错,加上后本地不报错了,但其他机器访问还是报错,用fiddler在客户端看了一下,发现配置文件无法下载,跨域文件是需要下载到客户端然后silverlight文件读取的,如果无法下载,当然失败了。发现问题了,是防火墙开着没有配置90端口例外,被防火墙阻止了,晕。。。。。。

 

 

  b. 还有可能因为其他原因造成,可以用 http 监听工具查看 response 的内容,看到异常信息。

  2. 调用 WCF 时发现传参丢失,变成 null.

  原因:客户端代理不同步,更新一下服务引用即可。

3.IIS根服务器启用了HTTPS,而WCF服务我启用了HTTP,所以当Siverlight请求策略文件时被IIS拒绝了,返回了403错误,因此Silverlight无法访问策略文件。 所以只需要关闭IIS服务的HTTPS问题就解决了!

 

 

如果WCF 的宿主是独立的 Application的话手动加载跨域文件.

CrossDomainService.PoliceFilePath ="c:\WCF_APP\clientaccesspolicy.xml" ;             

ServiceHost policy_host =new ServiceHost(typeof(CrossDomainService), new Uri[1] { new Uri("192.168.1.1") });            

policy_host.Open();

posted on   宏宇  阅读(854)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2007-11-08 让asp.net默认的上传组件支持进度条反映(转)
2007-11-08 在 Asp.Net Web 应用程序中长时间装载页面时显示进度条(转)
2006-11-08 sql server2000中使用convert来取得datetime数据类型样式(全)
< 2011年11月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示