簡體   English   中英

AspNetCompatibilityRequirements究竟意味着什么?

[英]What does AspNetCompatibilityRequirements really mean?

這與客戶有什么關系嗎? 我的意思是,如果我將AspNetCompatibilityRequirements設置為required。 wcf仍然可以通過WP7,android和ios等移動設備訪問嗎?

它與客戶無關。 ASP.NET兼容性在以下文章中進行了解釋:

雖然WCF模型旨在跨托管環境和傳輸一致地運行,但是通常情況下應用程序不需要這種程度的靈活性。 WCF的ASP.NET兼容模式適用於不需要在IIS外部托管或通過HTTP以外的協議進行通信但使用ASP.NET Web應用程序平台的所有功能的方案。

與默認的並排配置不同,WCF托管基礎架構攔截WCF消息並將其路由出HTTP管道,在ASP.NET兼容模式下運行的WCF服務完全參與ASP.NET HTTP請求生命周期。 在兼容模式下,WCF服務通過IHttpHandler實現使用HTTP管道,類似於處理ASPX頁面和ASMX Web服務請求的方式。 因此,對於以下ASP.NET功能,WCF與ASMX的行為完全相同:

  • HttpContext:在ASP.NET兼容模式下運行的WCF服務可以訪問Current及其關聯狀態。

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

  • 可配置的URL授權:當WCF服務在ASP.NET兼容模式下運行時,對WCF請求強制實施ASP.NET的URL授權規則。

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

  • ASP.NET模擬:使用ASP.NET模擬線程的當前標識運行WCF服務,如果已為應用程序啟用了ASP.NET模擬,則該模式可能與IIS進程標識不同。 如果為特定服務操作啟用了ASP.NET模擬和WCF模擬,則服務實現最終使用從WCF獲取的標識運行。

它啟用了ASP.NET會話狀態,這不是從iOS,Android和WP7訪問WCF服務的挑戰。 使用WCF與這些平台進行通信的真正問題(至少對於iOS和Android而言)是缺少適合客戶端的代理。 這些客戶端可以使用WCF完成RESTful服務,但不使用ASP.NET會話狀態,因為RESTful服務是無會話的。 使用MVC路由和JsonResult(或MVC4中的Web API)也可以做得相當優雅。

暫無
暫無

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

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