2011-09-12 116 views
2

我们目前拥有一个托管在SharePoint 2010页面中的Silverlight应用程序。 Silverlight应用程序会将Web服务调用到我们的域中的另一台服务器上,该域中有一个clientaccesspolicy文件。我们在生产环境中遇到了跨域问题。SharePoint 2010和Silverlight

服务器场管理员组中的用户可以毫无问题地使用Silverlight应用程序。但是,所有其他用户在尝试使用此应用程序时都会收到通用的跨域异常。我们已将Fiddler附加到流程中,并注意到服务器场管理员已获得了clientaccesspolicy文件,但非管理员用户却没有。事实上,Fiddler从未显示过为非管理员加载该文件的尝试。

这只发生在我们的生产环境中,这导致我相信存在导致此问题的Web配置或权限设置。不幸的是,我找不到任何支持这一点的东西。

是否有其他人遇到这个问题或知道这样的设置是否存在?

+0

需要检查用户是否可以直接访问服务和策略文件。 – vorrtex

+0

他们可以。我有用户在他们的浏览器中测试URL。他们可以访问服务URL和策略文件。当它在SharePoint中托管时,他们无法访问Silverlight应用程序。有一点我最初并没有提出 - 有问题的服务是一个简单的WCF服务,对SQL Server执行SELECT操作。它不是SharePoint Web服务。 –

+0

还有类似的讨论:http://forums.silverlight.net/t/193638.aspx。其他一些想法:策略文件被浏览器缓存,或者有一些映射将远程服务器屏蔽为本地服务器。 – vorrtex

回答

0

请参阅上面的注释。我必须更改URL才能使用完整的计算机名称,即从webserver/service.svc到webserver.domain.com/service.svc。它解决了这个问题,但没有回答关于为什么农场管理员可以访问它的问题。 vorrtex的回应是迄今为止我所见过的最好的解释。