<loadFromRemoteSources> 項目

指定是否應該在 .NET Framework 4 和更新版本中,將從遠端來源載入的元件授與完全信任。

注意

如果您因為 Visual Studio 專案錯誤清單中的錯誤訊息或組建錯誤而將您導向本文,請參閱如何:在 Visual Studio 中使用 Web 的元件

<configuration>
  <runtime>
    <loadFromRemoteSources>

Syntax

<loadFromRemoteSources
   enabled="true|false"/>  

屬性和元素

下列章節說明屬性、子元素和父元素。

屬性

屬性 描述
enabled 必要屬性。

指定是否應將從遠端來源載入的元件授與完全信任。

enabled 屬性

描述
false 請勿將完全信任授與遠端來源的應用程式。 此為預設值。
true 將完全信任授與遠端來源的應用程式。

子元素

無。

父元素

元素 描述
configuration 通用語言執行平台和 .NET Framework 應用程式所使用之每個組態檔中的根項目。
runtime 包含有關執行階段初始化選項的資訊。

備註

在 .NET Framework 3.5 及更早版本中,如果您從遠端位置載入元件,則元件中的程式碼會在部分信任中執行,而該授權集會相依于載入該元件的區域。 例如,如果您從網站載入元件,它會載入至網際網路區域,並授與網際網路許可權集合。 換句話說,它會在網際網路沙箱中執行。

從 .NET Framework 4 開始,已停用代碼啟用安全性 (CAS) 原則,並以完全信任方式載入元件。 一般來說,這會將完全信任授與 Assembly.LoadFrom 先前已沙箱化方法載入的元件。 為了避免這種情況,預設會停用從遠端來源載入的元件中執行程式碼的能力。 根據預設,如果您嘗試載入遠端元件,則會擲回具有例外狀況訊息的,如下所示 FileLoadException

System.IO.FileNotFoundException: Could not load file or assembly 'file:assem.dll' or one of its dependencies. Operation is not supported.
(Exception from HRESULT: 0x80131515)
File name: 'file:assem.dll' --->
System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly
to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default,
so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch.

若要載入元件並執行其程式碼,您必須:

  • 明確建立元件的沙箱 (請參閱 如何:在沙箱中執行部分信任 的程式碼) 。

  • 以完全信任的方式執行元件的程式碼。 您可以藉由設定元素來完成這項作業 <loadFromRemoteSources> 。 它可讓您指定在舊版 .NET Framework 中以部分信任方式執行的元件,現在是在 .NET Framework 4 和更新版本中以完全信任的方式執行。

重要

如果元件不應以完全信任的方式執行,請不要設定此設定元素。 相反地,請建立沙箱以 AppDomain 載入元件。

enabled <loadFromRemoteSources> 只有在停用 (CAS) 的代碼啟用安全性時,元素的屬性才有效。 預設會停用 .NET Framework 4 和更新版本中的 CAS 原則。 如果您將設定 enabledtrue ,則會將完全信任授與遠端元件。

如果未 enabled 設定為 trueFileLoadException 則會在下列其中一個條件下擲回:

  • 目前網域的沙箱行為與其在 .NET Framework 3.5 中的行為不同。 這需要停用 CAS 原則,而且目前的網域不會進行沙箱化。

  • 載入的元件不是來自 MyComputer 區域。

設定 <loadFromRemoteSources> 元素以防止擲回 true 此例外狀況。 它可讓您指定不依賴 common language runtime 來沙箱載入的元件以取得安全性,而且可以允許它們以完全信任的方式執行。

備註

  • 在 .NET Framework 4.5 和更新版本中,局域網路共用上的元件預設會以完全信任方式執行;您不需要啟用 <loadFromRemoteSources> 元素。

  • 如果已從網路複製應用程式,即使該應用程式位於本機電腦上,Windows 仍會將它標示為 Web 應用程式。 您可以藉由變更其檔案屬性來變更該指定,也可以使用 <loadFromRemoteSources> 元素來授與元件完全信任。 或者,您可以使用 UnsafeLoadFrom 方法載入作業系統標示為從 Web 載入的本機組件。

  • 您可能會 FileLoadException 在 Windows Virtual PC 應用程式中執行的應用程式中取得。 當您嘗試從主控電腦上的連結資料夾載入檔案時,就會發生這種情況。 當您嘗試從透過 遠端桌面服務 (終端機服務) 連結的資料夾載入檔案時,也可能會發生這種情況。 若要避免這個例外狀況,請將設定 enabledtrue

組態檔

此項目通常用於應用程式組態檔,不過可以根據內容用於其他組態檔。 For more information, see the article More Implicit Uses of CAS Policy: loadFromRemoteSources in the .NET Security blog.

範例

下列範例顯示如何將完全信任授與從遠端來源載入的元件。

<configuration>  
   <runtime>  
      <loadFromRemoteSources enabled="true"/>  
   </runtime>  
</configuration>  

另請參閱