日期:2014-05-18  浏览次数:20753 次

显示不出来了,急,急,急
asp.net站点中使用了“Silverlight”的“Xap页面”。

现状:
  站点中添加了“启用了Silverlight的WCF服务”,用来为“Silverlight”提供数据访问。发布之后,部署在IIS6.0下,“Xap页面”中的内容就显示不出来了,已经添加了“MIME”。而在VS2010开发环境中是正常的呢?

问题:请问这是为什么呢?是不是“启用了Silverlight的WCF服务”需要在“IIS6下”进行什么配置?

------解决方案--------------------
显示不出来??

你的MIME类型配置正确了嘛?
还有你的网站下放置了跨域访问文件了嘛?

------解决方案--------------------
探讨

准确来讲:
“Silverlight”访问不到部署在“IIS6”上的“WCF Servcie服务”。

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

------解决方案--------------------
点击网站属性来到HTTP头,添加一些MIME类型。

扩展名:.xap

MIME类型:xapapplication/x-silverlight

 

扩展名: .xaml 
MIME类型:application/xaml+xml


------解决方案--------------------
那就是在Silverlight中添加WCF服务引用的服务配置文件的EndPoint有问题,贴出来看一下。

因为在VS2010中利用自身的编译器生成没有问题,但是发布到IIS上,要让其他机器能访问到,还是需要设置一下配置文件的。

------解决方案--------------------
修改你的 http://localhost:4707/Mycems.UI/ChartsService.svc 这个 url 地址。

访问silverlight所在的网站,根本不用添加跨域 xml 文件。

如果你想动态产生访问wcf的这个地址,而不是每一次部署到网站都手工修改url,那么访问wcf的时候、new客户端代理对象的时候,使用那个有着2个参数的实例化方法(而不是无参数实例化方法),其第二个参数就是服务的url。你可以使用
C# code
Application.Host.Source

------解决方案--------------------
你的silverlgiht程序不存在跨域问题。去搞那个会白白耽误时间。

silverlight自己访问自己xap文件所在的网站,是不需要跨域文件的。

想知道是否需要跨域文件,你只要使用一个http调试工具看一下你的浏览器端的http访问,看看在sivlerlight通过浏览器去访问svc文件之前有没有首先去下载跨域文件就行了。同样地,你也可以看出这个svc文件路径的问题,你可以看出它根本不指向你的IIs6.0的网站。



------解决方案--------------------
探讨

准确来讲:
“Silverlight”访问不到部署在“IIS6”上的“WCF Servcie服务”。