操作系統進程通過使用各不相同的內存地址空間來提供隔離。盡管它是有效的,但也是代價昂貴的,并且不能達到大型 Web 服務器所需要的數量。與其相比,公共語言運行時通過管理在應用程序域中運行的代碼的內存使用來強制進行應用程序隔離。這樣就確保它不會訪問應用程序域以外的內存。需要注意的是,只有類型安全的代碼才能以這種方式管理(當在應用程序域中加載不安全代碼時,運行時不能保證隔離)。
互操作性 是否可以在 .NET 框架程序中使用 COM 對象? 是。您現在部署的任何 COM 組件都可以在托管代碼中使用。通常情況下,所需的調整是完全自動進行的。
特別是,可以使用運行時可調用包裝 (RCW) 從 .NET 框架訪問 COM 組件。此包裝將 COM 組件提供的 COM 接口轉換為與 .NET 框架兼容的接口。對于 OLE 自動化接口,RCW 可以從類型庫中自動生成;對于非 OLE 自動化接口,開發人員可以編寫自定義 RCW,手動將 COM 接口提供的類型映射為與 .NET 框架兼容的類型。
是否可以在 COM 程序中使用 .NET 框架組件? 是。您現在創建的托管類型都可以通過 COM 訪問。通常情況下,所需的配置是完全自動進行的。托管開發環境的某些新特性不能在 COM 中訪問。例如,不能在 COM 中使用靜態方法和參數化構造函數。一般,提前確定給定類型所針對的用戶是一種較好的辦法。如果類型需要在 COM 中使用,您將被限制在使用 COM 可訪問的特性。
默認情況下,托管類型可能是可見的,也可能是不可見的,這由用于編寫托管類型的語言決定。
特別是,可以使用 COM 可調用包裝 (CCW) 從 COM 訪問 .NET 框架組件。這與 RCW(請參閱上一個問題)相似,但它們的方向相反。同樣,如果 .NET 框架開發工具不能自動生成包裝,或者如果自動方式不是您所需要的,則可以開發自定義的 CCW。
為什么在網絡共享驅動器中運行代碼時會發生安全異常? 默認安全策略僅給來自本地 Intranet 區域的代碼授予有限的權限。這個區域是由 Internet Explorer 安全設置定義的,它們應該配置為與企業內部的本地網絡相匹配。由于由 UNC 或映射驅動器(例如使用 NET USE 命令)命名的文件都需要在本地網絡上發送,因此它們也在本地 Intranet 區域中。
基于證據的安全性是如何與 Windows 2000 安全性配合工作的? 基于證據的安全性(基于授權碼)能與 Windows 2000 安全性(基于登錄身份標識)配合工作。例如,要訪問一個文件,托管代碼必須具有代碼訪問安全文件權限,也必須在具有 NTFS 文件訪問權限的登錄身份標識下運行。.NET 框架中包括的托管庫也為基于角色的安全性提供了類。這些都使應用程序能夠與 Windows 登錄身份標識及用戶組配合工作。