Sdílet prostřednictvím


<> element NetFx40_PInvokeStackResilience

Určuje, jestli modul runtime automaticky opravuje deklarace volání nesprávné platformy za běhu za cenu pomalejších přechodů mezi spravovaným a nespravovaným kódem.

<konfigurace>
  <runtime>
    <NetFx40_PInvokeStackResilience>

Syntaxe

<NetFx40_PInvokeStackResilience  enabled="1|0"/>

Atributy a prvky

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Atribut Popis
enabled Požadovaný atribut.

Určuje, jestli modul runtime zjistí nesprávné deklarace volání platformy a automaticky opraví zásobník za běhu na 32bitových platformách.

Atribut enabled

Hodnota Popis
0 Modul runtime používá rychlejší architekturu zařazování zprostředkovatele komunikace zavedenou v rozhraní .NET Framework 4, která nerozpozná a opravuje deklarace volání nesprávné platformy. Tato možnost je výchozí.
1 Modul runtime používá pomalejší přechody, které detekují a opravují deklarace volání nesprávné platformy.

Podřízené prvky

Nezaokrouhlovat.

Nadřazené prvky

Element (Prvek) Popis
configuration Kořenový prvek v každém konfiguračním souboru, který je používán modulem Common Language Runtime (CLR) a aplikacemi rozhraní .NET Framework.
runtime Obsahuje informace o možnostech inicializace modulu runtime.

Poznámky

Tento prvek umožňuje obchodovat s rychlejším zařazováním spolupráce za účelem odolnosti za běhu proti nesprávným deklaracím volání platformy.

Od rozhraní .NET Framework 4 poskytuje zjednodušená architektura zařazování zprostředkovatele spolupráce významné zlepšení výkonu pro přechody ze spravovaného kódu na nespravovaný kód. V dřívějších verzích rozhraní .NET Framework zjistila vrstva seřazování nesprávnou platformou vyvolat deklarace na 32bitových platformách a automaticky opravila zásobník. Tato nová architektura zařazování eliminuje tento krok. V důsledku toho jsou přechody velmi rychlé, ale deklarace vyvolání nesprávné platformy může způsobit selhání programu.

Aby bylo možné během vývoje snadno rozpoznat nesprávné deklarace, vylepšilo se prostředí ladění sady Visual Studio. Pomocník pro ladění spravované ladění pInvokeStackImbalance (MDA) vás upozorní na deklarace volání nesprávné platformy při spuštění aplikace s připojeným ladicím programem.

Pokud chcete řešit scénáře, ve kterých vaše aplikace používá komponenty, které nelze překompilovat a které mají nesprávné deklarace volání platformy, můžete použít NetFx40_PInvokeStackResilience element. Přidání tohoto prvku do konfiguračního souboru aplikace s výslovnými enabled="1" souhlasy do režimu kompatibility s chováním starších verzí rozhraní .NET Framework za cenu pomalejších přechodů. Sestavení, která byla zkompilována proti dřívějším verzím rozhraní .NET Framework, jsou automaticky optována do tohoto režimu kompatibility a nepotřebují tento prvek.

Konfigurační soubor

Tento prvek lze použít pouze v konfiguračním souboru aplikace.

Příklad

Následující příklad ukazuje, jak se přihlásit ke zvýšení odolnosti proti nesprávným deklaracím volání platformy pro aplikaci za cenu pomalejších přechodů mezi spravovaným a nespravovaným kódem.

<configuration>
   <runtime>
      <NetFx40_PInvokeStackResilience enabled="1"/>
   </runtime>
</configuration>

Viz také