簡體   English   中英

Silverlight WCF服務:是否可以通過客戶端訪問WCF?

[英]Silverlight WCF services: WCF is accessed through Client?

WCF服務是從承載Silverlight XAP的IIS服務器中調用還是直接從客戶端的瀏覽器中調用? 如果將WCF服務放置在離數據庫更近的服務器上(而不是與Silverlight / ASP.NET頁面位於同一服務器上),是否需要向世界開放WCF服務器的端口?

這聽起來像是一個簡單的答案,但實際上並沒有聽起來那么明顯,例如:

  1. ClientAccessPolicy.xml

此文件可幫助您控制哪些域有權調用WCF服務。 這是一個非常基本的示例,說明如何將訪問權限限制為僅在所需域下運行的那些應用程序。 這允許某人通過安全和非安全URL來運行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

您的客戶端是直接調用服務器A還是向服務器B發出請求,該服務器用作與服務器A進行通信的代理?

服務器A在一個域上, 服務器B在另一個域上, 客戶端通過Internet。

在Silverlight中,silverlight應用程序完全在瀏覽器的上下文中運行。 在正常的,已部署Internet的Silverlight應用程序中,唯一允許的通信是通過服務。

使WCF服務盡可能地靠近數據庫仍然很不錯,但這與方案中的silverlight部分無關。

據我所知,Silverlight無法托管服務,即使是進程內服務也是如此。 您的服務將與可能承載Silverlight標記的ASP.NET應用程序一起托管在IIS中。

關於服務的放置位置,除非您有充分的理由認為它屬於數據庫服務器,否則請不要這樣做。 我想用業務邏輯編寫存儲的proc,因為您擔心從數據庫中傳輸的數據量-通常在您有實際需求時才訴諸於此,而不是假設的需求。

即使您希望這樣做,也要考慮到數據將始終必須通過您的應用程序服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM