最近有项目silverlight通过单独部署的WCF站点访问sharepoint2013的图片库,需要做个笑脸墙效果如下:
结果开发完毕后无法在SP站点显示出来。使用VS自带的WCF工具进行测试。如下:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE 找到WcfTestClient.exe
如下图:
双击其中一个方法,可以进行测试。。。
经过测试发现无权限,于是想到应用程序池,把WCF部署的站点的应用程序池设置成当前SP的场管理员,如下图:
设置方法,点击应用程序池的高级设置,如下图:
点设置
设置完成发现silverlight部署到SP站点还是无法通过WCF读取图片,想到应当是跨域问题。
创建如下2个xml文件
1、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>
2 crossdomain.xml
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"</a>
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
把2个文件拷贝到WCF的站点下,如下图:
再把clientaccesspolicy.xml 拷贝到sp站点根目录下,c:\intetpub\wwwroot找到对应的站点,如下图:
拷贝完毕后,再打开SP站点此时可以看到silverlight通过WCF访问到图片库。