2

Microsoftのドキュメントによると、falseは「useLegacyV2RuntimeActivationPolicy」構成のデフォルト値です。

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

.NET Framework 4以降のデフォルトのアクティベーションポリシーを使用します。これにより、従来のランタイムアクティベーション手法でCLRバージョン1.1または2.0をプロセスにロードできるようになります。この値を設定すると、混合モードアセンブリが.NET Framework 4以降でビルドされていない限り、.NETFramework4以降に読み込まれなくなります。この値[false]がデフォルトです。

これは、デスクトップアプリケーション、およびプロジェクトに自動または手動で追加される構成ファイルの場合に当てはまるようです。また、Microsoftは.Net 4.0に影響を与えないように努めていたため、デフォルトでtrueに設定されていないことも理にかなっています。

引用:http ://www.marklio.com/marklio/PermaLink,guid,ecc34c3c-be44-4422-86b7-900900e451f9.aspx)。

これはWebアプリケーションにも同様に当てはまると思っていましたが、そうではないようです。web.configは期待どおりに見えますが、aspnet.configファイル(つまり、Microsoft.NETディレクトリにあるグローバル設定ファイル)は、実際にはこの値をtrueに設定します。

誰かがこの決定の背後にある理論的根拠を知っていますか?つまり、ASP.Netの処理中のSxSを防ぐという決定です。

これについての洞察に感謝します。(特に最後の日、頭を壁にぶつけた後。)

4

1 に答える 1

1

[私の答えは、実行中のSxSが製品をどのように形作るかを理解するためにパートナーと協力するランタイムチームのメンバーの観点からです]

.NET FrameworkのインプロセスSxSとの互換性を確保することは、mscoree(COMアクティベーションパターンのように明示的または暗黙的)を介して大量の内部呼び出しを更新することを伴う、かなり大規模な作業でした。チームは、シナリオの観点とコストの観点の両方から意味のあるデフォルトを選択する必要がありました。ASP.netは、サイトをホストするランタイムを選択するための豊富なサポートをすでに備えているホストプラットフォームとして、単一ランタイムの世界にとどまるという選択をしました。デスクトップアプリは、さまざまなテクノロジー(サードパーティの拡張機能、プラグインなど)の構成に柔軟に対応できることでメリットがあり、新しいランタイムリリースの互換性の高いインプロセスSxSモードのメリットもあります。これにより、インプロセスSxSの欠点はそれほど悪くありません。 (そして、それが悪い場合はいつでも単一のランタイムにオプトバックすることができます)。Webサイトの場合、

多くのチームにとって、選択の最も有用なフレーミングは、「偶発的な進行中のSxSシナリオで自分自身を見つけたときにどのような動作が必要か」でした。ASP.netの場合、答えは「可能な限りパフォーマンスとスケーラブルを維持したい」でした。この決定により、このリリースでより多くのリソースが解放され、ASP.netの大幅な改善に集中できるようになりました。

于 2013-03-05T16:46:51.763 に答える