经过一天的彻底寻找解决方案,我在以下问题上停滞不前:
我正在添加一个带有silverlight应用程序的aspx页面作为我的sharepoint的功能。该应用程序从virtuoso服务访问sparql-endpoint,并且在sharepoint之外运行良好。"clientaccesspicy .xml"被添加到virtuoso和sharepoint根目录中。两者都可以通过http:
访问。<?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>
我甚至添加了crossdomain.xml在这两个位置后,这个问题爬上了我,并通过central-admin显式地将这两个文件添加到sharepoint路径。
我仍然得到一个securityException…
请帮我一下,
又浪费了几个小时,我自己琢磨出了答案。
对于到达同一十字路口的人:如果你确定crossdomain.xml已经存在,并且你的silverlight应用程序在sharepoint之外工作,那么这个特殊的安全异常不是来自跨域违规,而更可能是来自这里记录的其他url访问限制之一:
如上文所述:当用户因违反其中一个访问策略而出现错误时,错误可能没有指明确切的原因。此错误可能有列出的任何原因。(我认为这是MSDN的一大疏忽)
由于"跨方案访问"one_answers"跨域访问"不在图中,这只剩下"跨区域访问冲突"。这意味着你的Silverlight应用程序和服务端点必须在同一个区域才能被允许通信(例如Internet或Intranet)。由于我的spaql端点目前托管在本地主机上(IE默认为内网地址),而我的sharepoint地址http://my.comp.name默认在internet区域中,因此抛出此错误。
要消除这个错误,你必须要么将你的端点托管在internet地址上,要么手动将你的sharepoint地址放在intranet区域。在谷歌上搜索了一下之后,我在互联网上找到了正确的配置。
->security ->local Intranet -> sites ->add:您的sharepoint地址(http://my.comp.name)
就这样,希望我给你留了一些持久的皱纹。
照顾…