Megosztás a következőn keresztül:


<loadFromRemoteSources> elem

Meghatározza, hogy a távoli forrásokból betöltött szerelvények teljes megbízhatóságot kapjanak-e a .NET-keretrendszer 4- és újabb verziókban.

Megjegyzés

Ha a Visual Studio-projekt hibalistájában szereplő hibaüzenet vagy buildelési hiba miatt a cikkre irányították, olvassa el a Útmutató: Szerelvény használata a Webről a Visual Studióban című témakört.

<Konfigurációs>
  <Runtime>
    <loadFromRemoteSources>

Syntax

<loadFromRemoteSources
   enabled="true|false"/>

Attribútumok és elemek

Az alábbi szakaszok az attribútumokat, a gyermekelemeket és a szülőelemeket ismertetik.

Attribútumok

Attribútum Leírás
enabled Kötelező attribútum.

Meghatározza, hogy egy távoli forrásból betöltött szerelvény teljes megbízhatóságot kapjon-e.

enabled attribútum

Érték Leírás
false Ne adjon teljes megbízhatóságot a távoli forrásokból származó alkalmazásoknak. Ez az alapértelmezett beállítás.
true Teljes megbízhatóság biztosítása távoli forrásokból származó alkalmazások számára.

Gyermekelemek

Nincsenek.

Szülőelemek

Elem Leírás
configuration A közös nyelvi futtatókörnyezet és .NET-keretrendszer alkalmazások által használt összes konfigurációs fájl gyökéreleme.
runtime Információkat tartalmaz a futtatókörnyezet inicializálási beállításairól.

Megjegyzések

A .NET-keretrendszer 3.5-ös és korábbi verzióiban, ha távoli helyről tölt be egy szerelvényt, a szerelvényben lévő kód részleges megbízhatósági állapotban fut egy olyan támogatási készlettel, amely attól a zónától függ, ahonnan betölti. Ha például egy webhelyről tölt be egy szerelvényt, az be lesz töltve az internetzónába, és megadta az internetes engedélykészletet. Más szóval egy internetes tesztkörnyezetben fut.

A .NET-keretrendszer 4-től kezdve a kódelérési biztonsági (CAS) szabályzat le van tiltva, és a szerelvények teljes megbízhatósággal töltődnek be. Ez általában teljes megbízhatóságot adna a Assembly.LoadFrom korábban tesztkörnyezetbe helyezett módszerrel betöltött szerelvényeknek. Ennek elkerülése érdekében alapértelmezés szerint le van tiltva a kód távoli forrásból betöltött szerelvényekben való futtatásának lehetősége. Ha egy távoli szerelvényt próbál betölteni, FileLoadException alapértelmezés szerint a rendszer a következőhöz hasonló kivételüzenetet küld:

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.

A szerelvény betöltéséhez és a kód végrehajtásához a következőket kell tennie:

  • Kifejezetten hozzon létre tesztkörnyezetet a szerelvényhez (lásd : Részben megbízható kód futtatása tesztkörnyezetben).

  • Futtassa a szerelvény kódját teljes megbízhatósági kapcsolaton belül. Ezt az elem konfigurálásával <loadFromRemoteSources> teheti meg. Lehetővé teszi annak megadását, hogy a .NET-keretrendszer korábbi verzióiban részleges megbízhatósági állapotban futó szerelvények mostantól teljes megbízhatósági kapcsolaton futnak a .NET-keretrendszer 4-.NET-keretrendszer és újabb verzióiban.

Fontos

Ha a szerelvény nem futtatható teljes megbízhatósági kapcsolaton belül, ne állítsa be ezt a konfigurációs elemet. Ehelyett hozzon létre egy tesztkörnyezetet AppDomain , amelyben betölti a szerelvényt.

Az enabled elem attribútuma <loadFromRemoteSources> csak akkor érvényes, ha a kódelérési biztonság (CAS) le van tiltva. Alapértelmezés szerint a CAS-szabályzat le van tiltva a .NET-keretrendszer 4- és újabb verziókban. Ha a értékre van állítva enabled , a truetávoli szerelvények teljes megbízhatóságot kapnak.

Ha enabled nincs beállítva a értékre true, FileLoadException akkor az a az alábbi feltételek valamelyike szerint lesz beállítva:

  • Az aktuális tartomány tesztkörnyezeti viselkedése eltér a 3.5-ös .NET-keretrendszer viselkedésétől. Ehhez le kell tiltani a CAS-szabályzatot, és az aktuális tartományt nem kell tesztkörnyezetbe tenni.

  • A betöltött szerelvény nem a MyComputer zónából származik.

Ha úgy állítja be az <loadFromRemoteSources> elemet, hogy true megakadályozza a kivétel eldobását. Lehetővé teszi annak megadását, hogy nem a közös nyelvi futtatókörnyezetre támaszkodik a betöltött szerelvények biztonsági tesztkörnyezetében, és hogy teljes megbízhatósággal végrehajthatók legyenek.

Jegyzetek

  • A .NET-keretrendszer 4.5-ös és újabb verzióiban a helyi hálózati megosztásokon (azaz a helyi intranetes biztonsági zónán) lévő szerelvények alapértelmezés szerint teljes megbízhatósági kapcsolatban futnak; nem kell engedélyeznie az <loadFromRemoteSources> elemet. A Helyi gép vagy a Helyi intranet kivételével a biztonsági zónák esetében állítsa az értéket a értékre true.

  • Ha egy alkalmazást kimásoltak a webről, a Windows webalkalmazásként megjelöli, még akkor is, ha az a helyi számítógépen található. Ezt a kijelölést módosíthatja a fájltulajdonságok módosításával, vagy az <loadFromRemoteSources> elem használatával teljes megbízhatóságot biztosíthat a szerelvénynek. Alternatív megoldásként a UnsafeLoadFrom metódussal betölthet egy helyi szerelvényt, amelyet az operációs rendszer úgy jelölt meg, hogy be lett töltve az internetről.

  • Előfordulhat, hogy windowsos FileLoadException virtuálisgép-alkalmazásban futó alkalmazásban kap egy alkalmazást. Ez akkor fordulhat elő, ha fájlokat próbál betölteni a csatolt mappákból a gazdaszámítógépre. Ez akkor is előfordulhat, ha távoli asztali szolgáltatásokon (terminálszolgáltatásokon ) keresztül csatolt mappából próbál betölteni egy fájlt. A kivétel elkerüléséhez állítsa a értéket a értékre enabledtrue.

Konfigurációs fájl

Ezt az elemet általában az alkalmazáskonfigurációs fájlban használják, de a környezettől függően más konfigurációs fájlokban is használható. További információ: A CAS-szabályzat további implicit felhasználási módjai: loadFromRemoteSources a .NET Security blogban.

Példa

Az alábbi példa bemutatja, hogyan adhat teljes megbízhatóságot a távoli forrásokból betöltött szerelvényeknek.

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

Lásd még