Thứ Bảy, 19 tháng 9, 2009

WCF và tính tương thích với ASP.NET

Một sự khác biệt to lớn giữa các Web Services truyền thống ASMX và WCF Services là khả năng kích hoạt của chúng. Với WCF các services có thể được kích hoạt thông qua các giao thức ngoài HTTP như net.tcp, net.pipe hoặc WAS (Windows Activation Service). Trong khi ASMX service chỉ có thể được kích hoạt thông qua HTTP, và do đó nó liên kết chặt chẽ với ASP.NET HTTP pipeline. Điều này khiến cho các WCF services trở nên khá linh hoạt và động lập trong quá trình triển khai. Chúng có thể được deploy ở IIS, Windows Services hoặc các host tự tạo. Ngay cả khi WCF service được triển khai trên môi trường IIS, bên trong một ASP.NET application thì nó cũng không phụ thuộc vào các features của ASP.NET. Chúng ta dễ dàng nhận thấy rằng, các features trong ASP.NET như:

  • Authentication
  • Url/File authorization
  • Impersonation
  • Session state
  • Request cache
  • Globalization
  • Custom HttpModules

    Các features này thuộc về các thư viện HTTP:

  • System.Web.HttpApplication
  • System.Web.HttpContext

    Các features này sẽ không có khả năng sử dụng nếu như chúng ta không thiết lập ASP.NET Compatible Mode cho WCF. Khi đó, với HttpContext, đối tượng Current là luôn luôn null trong WCF. Để sử dụng các features này trong WCF, chúng ta cấu hình ASP.NET Compatible mode cho WCF. WCF cung cấp khả năng hỗ trợ ASMX thông qua các phương thức hosting khác nhau

    • Mixed Transports Mode
    • ASP.NET compatibility mode

    Để thiết lập ASP.NET Compatible Mode, chúng ta tham khảo hướng dẫn trên MSDN:

    http://msdn.microsoft.com/en-us/library/aa702682.aspx

    Reference: ASP.NET Compatibility Mode

  • Không có nhận xét nào:

    Đăng nhận xét