【发布时间】:2011-11-15 07:40:36
【问题描述】:
我们目前有一个 Silverlight 应用程序,它托管在 SharePoint 2010 页面中。 Silverlight 应用程序对我们域中的另一台服务器进行 Web 服务调用,该服务器有一个 clientaccesspolicy 文件。我们在生产环境中遇到跨域问题。
场管理员组中的用户可以毫无问题地使用 Silverlight 应用程序。但是,所有其他用户在尝试使用此应用程序时都会收到通用跨域异常。我们已将 Fiddler 附加到该过程中,并注意到为场管理员提供了 clientaccesspolicy 文件,但非管理员用户没有。事实上,Fiddler 从未尝试为非管理员加载此文件。
这只发生在我们的生产环境中,这让我相信是网络配置或权限设置导致了这个问题。不幸的是,我找不到任何支持这一点的东西。
有没有其他人遇到过这个问题或知道是否存在这样的设置?
【问题讨论】:
-
需要检查用户是否可以直接访问服务和策略文件。
-
他们可以。我让用户在他们的浏览器中测试 URL。他们可以点击服务 URL 和策略文件。他们只是无法访问托管在 SharePoint 中的 Silverlight 应用程序。我最初没有提出的一点 - 有问题的服务是一个简单的 WCF 服务,它对 SQL Server 执行 SELECT。它不是 SharePoint Web 服务。
-
有类似的讨论:forums.silverlight.net/t/193638.aspx。其他一些想法:策略文件被浏览器缓存,或者有一些映射将远程服务器屏蔽为本地服务器。
-
我想通了。这是我的一个错误。我必须为服务 url 添加完整的机器名称,即webserver.domain.com/service.svc。之前设置为webserver/service.svc。我仍然不知道为什么农场管理员可以使用第一个 URL,但我现在不会担心。
-
也许农场管理员在本地机器上使用了这个服务,并且由于一些隐式的 url 映射而可以访问它。好的,自己发布您的问题的答案并接受它,它可能会帮助其他有类似问题的人。
标签: silverlight sharepoint-2010