2012-03-13 96 views

回答

17

它與客戶無關。 ASP.NET兼容性在following article解釋說:

儘管WCF模型旨在表現一致地 主機環境和運輸,經常在哪裏 的應用程序不需要這種程度的靈活性方案。 WCF的 ASP.NET兼容模式適用於不需要能夠在IIS之外託管或通過除HTTP之外的其他協議進行通信但使用ASP.NET應用程序平臺的所有功能的場景。

與默認並排側配置,其中託管 基礎設施的WCF截獲WCF消息,並將它們從HTTP 管道,在ASP.NET兼容模式下運行WCF服務 充分參與ASP.NET HTTP請求生命週期。在 兼容性模式下,WCF服務通過IHttpHandler實現使用HTTP管道,類似於ASPX 頁和ASMX Web服務的請求處理方式。其結果是,WCF行爲 相同,以ASMX相對於下面的ASP.NET功能:

  • 的HttpContext:WCF服務在ASP.NET兼容模式中運行可以 接入電流及其相關聯的狀態。

  • 基於文件的授權:WCF在ASP.NET 兼容模式下運行的服務可以通過附加的文件系統訪問 控制列表(ACL)來服務的.svc文件的安全。

  • 可配置的URL授權:當WCF服務在ASP.NET中運行時,ASP.NET的URL授權規則爲 強制執行WCF服務 兼容模式。

  • HttpModuleCollection可擴展性:由於WCF服務 ASP.NET兼容模式運行在ASP.NET HTTP 請求生命週期全面參與,在HTTP管道中配置的任何HTTP模塊 能夠對WCF請求的操作之前和調用後服務 。

  • ASP.NET模擬:使用 當前標識的ASP.NET模擬的線程,如果ASP.NET模擬已經爲 應用程序啓用這可能是比IIS 進程標識不同的運行WCF服務。如果爲特定服務操作啓用ASP.NET模擬和WCF模擬都爲 ,則服務實現 最終將使用從WCF獲取的標識運行。

0

它使ASP.NET會話狀態,這是不與iOS版,Android和WP7訪問WCF服務的挑戰。至少對於iOS和Android來說,使用WCF與這些平臺進行通信的真正問題是缺少適合客戶端的代理。這些客戶端可以使用WCF完成的RESTful服務更好地發揮作用,但由於RESTful服務是無會話的,因此不使用ASP.NET會話狀態。使用MVC路由和JsonResult(或MVC4中的Web API)也可以非常優雅地使用它。