2

現在のアプリ ドメインのエビデンスを制御しているのは何ですか?

var evidence = Thread.GetDomain().Evidence;

それが null か非 null かを制御するものは何ですか? また、内容を決定するものは何ですか?

アプリケーションがこれらのホスト証拠オブジェクトをドメイン証拠から照会すると、

var z = evidence.GetHostEvidence<Zone> 
var p = evidence.GetHostEvidence<Publisher>
var s = evidence.GetHostEvidence<Site>
var n = evidence.GetHostEvidence<StrongName>
var u = evidence.GetHostEvidence<Url>

一部の環境で実行すると、それらがすべて null のように見えることがあります。これが内部でスローされた例外であると私が考える理由はIsolatedStorage._GetAccountingInfo(...)、リフレクターのコードを見ると、ドメイン証拠に上記のすべてのホスト証拠オブジェクトの null が含まれている場合にのみ、この例外がスローされることが明らかです。これにより、分離ストレージが初期化に失敗します。

残念ながら、自分のシステムでは再現できません。たとえば、ゾーンの値は常に「マイ コンピュータ」という適切な値になるため、これを解決するのに苦労しています。

Windows フォーム デスクトップ アプリケーションの既定のアプリ ドメインでこれらの値の内容を制御するものは何ですか?

4

2 に答える 2

0

私の質問に対するコメントでHansが示唆したように、犯人は実際に「異常な展開シナリオ」であったことが判明しました。いくつかのアセンブリに暗号化 (エンベロープ) を使用していますが、これにより、分離ストレージに必要な証拠が改ざんされているようです。

于 2012-07-12T08:10:48.303 に答える