Asp.net

AspNetCompatibilityRequirements 的真正含義是什麼?

  • March 13, 2012

這和客戶有關係嗎?我的意思是,如果我將 AspNetCompatibilityRequirements 設置為必需。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 及其關聯狀態。
  • 基於文件的授權:在 ASP.NET 兼容模式下執行的 WCF 服務可以通過將文件系統訪問控制列表 (ACL) 附加到服務的 .svc 文件來確保安全。
  • 可配置的 URL 授權:當 WCF 服務在 ASP.NET 兼容模式下執行時,對 WCF 請求強制執行 ASP.NET 的 URL 授權規則。
  • HttpModuleCollection 可擴展性:因為在 ASP.NET 兼容模式下執行的 WCF 服務完全參與 ASP.NET HTTP 請求生命週期,所以在 HTTP 管道中配置的任何 HTTP 模組都能夠在服務呼叫之前和之後對 WCF 請求進行操作。
  • ASP.NET 模擬:WCF 服務使用 ASP.NET 模擬執行緒的目前標識執行,如果已為應用程序啟用 ASP.NET 模擬,則該標識可能與 IIS 程序標識不同。如果為特定服務操作啟用了 ASP.NET 模擬和 WCF 模擬,則服務實現最終會使用從 WCF 獲得的標識執行。

引用自:https://stackoverflow.com/questions/9690191