【发布时间】:2011-02-22 16:12:38
【问题描述】:
WCF 服务是从托管 silverlight XAP 的 IIS 服务器调用还是直接从客户端浏览器调用?如果您要将 WCF 服务放在离数据库更近的服务器上(而不是与 Silverlight / ASP.NET 页面相同的服务器),WCF 服务器的端口是否需要向全世界开放?
这听起来像是一个简单的答案,但实际上并不像听起来那么明显:
- ClientAccessPolicy.xml
此文件可帮助您控制哪些 域有权调用您的 WCF 服务。这是一个非常基本的例子 关于如何限制仅访问 那些在您的环境下运行的应用程序 所需的域。这允许某人 运行您的 Silverlight 应用程序 从安全和非安全 网址。
<?xml version="1.0" encoding="utf-8"?> <access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*"> <domain uri="https://www.yourwebsite.com"/> <domain uri="http://www.yourwebsite.com"/> </allow-from> <grant-to> <resource path="/" include-subpaths="true"/> </grant-to> </policy> </cross-domain-access> </access-policy>
听起来好像调用返回到承载 Silverlight 应用程序的 Web 服务器,然后返回到 WCF 服务。
补充: 我知道我可能没有很好地传达我的问题。
如果您有用于 WCF 服务器的服务器(服务器 A) 和托管您的 Silverlight 应用程序的服务器(服务器 B)
您的客户端是直接调用 Server A 还是向 Server B 发出请求,该请求用作与 Server A 通信的代理>?
服务器A在一个域中,服务器B在另一个域中,客户端通过互联网。
【问题讨论】:
-
XAP 直接访问 WFC 服务。您可以在服务器 A 上托管 Silverlight 应用程序,并在服务器 B 上拥有 WCF 服务。客户端可以从服务器 A 获取 XAP 并与服务器 B 上的 WCF 服务进行通信。您可以关闭服务器 A 上的 IIS,只要客户端保持 XAP 文件在本地打开,将不知道服务器 A 的状态。
标签: silverlight wcf iis