Spiga

Silverlight + WCF + Sharepoint(Silverlight Web Part) 问题集合

2011-12-28 16:22 by bengxia, 31 visits, 收藏, 编辑
  1. “找不到类型{..} 它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。”
    •   确认.svc文件中的<%@ ServiceHost Language="C#" Debug="true" Service="{ServiceName}" CodeBehind="....cs" %>的{ServiceName}是不是跟Web.config中的服务名称一致。
  2. 自定义工具警告: 没有找到与Silverlight 4 兼容的端点。生成的客户端类将不可用,除非通过构造函数提供端点信息。
    •   WCF是否启用了Silverlight支持?WCF有WCF服务,WCF数据服务,在Silverlight中还有启用Silverlight支持的WCF,靠。
    •   [配置服务引用...],取消选择[重新使用引用的程序集中的类型]。
  3. 发布到Sharepoint中的Silverlight调用外域的WCF服务
    •   将添加WCF服务时生成的Reference.cs从Service References移动到项目文件夹下,可以重命名。
    •   修改...Client代码:
      EndpointAddress endPointAddress = new EndpointAddress("{wcf uri}");
                  CustomBinding binding = new CustomBinding();
                  binding.Elements.Add(new BinaryMessageEncodingBindingElement());
                  binding.Elements.Add(new HttpTransportBindingElement());
      
                  Adomd.AnalysisService.AdomdConnectorClient client = new Adomd.AnalysisService.AdomdConnectorClient(binding, endPointAddress);
      

        注意:如果不使用CutomBinding而用BasicHttpBinding就会返回:Not Found错误,主要是协议的问题,这是跟踪HTTP请求时发现的。

    •   在WCF宿主目录下(跟web.config一起)添加跨域策略文件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>
      
  4. 如何打开IncludeExceptionDetailInFaults,修改web.config:
    <configuration><behaviors><serviceBehaviors><behavior name="">
                        ...
                        <serviceDebug includeExceptionDetailInFaults="true" />
    ...
  5. 当发布到Sharepoint中的Silverlight部件调用外部WCF服务时遇到CrossDomainError怎么办,而且已经采用了clientaccesspolicy?
    既然发布了,就别在Uri中使用localhost啦
  6. 挖坑ing...
无觅相关文章插件,快速提升流量