.NETアセンブリはネットワークドライブで部分的な信頼で実行されますが、他のすべては完全に信頼しています

StackOverflow https://stackoverflow.com/questions/4827670

質問

ネットワークドライブで実行する際に、C ++ソリューション(.NET 4.0アセンブリを呼び出す)に奇妙な問題があります。このソリューションは、NetTCPBindingを使用していくつかのWCFサービスをホストします。そのうちの1つは、非デフォルトバインディング構成を備えています。非デフォルトnettcpbindingは、部分的な信頼の下では不可能です(スタックオーバーフローの質問を参照してください WCF nettcpbindingはいつクライアントに完全な信頼を必要としますか?)、しかし、ソリューションは完全に信頼できるネットワークドライブの下で実行されます。これはいくつかの異なるコンピューター(Windows VistaとWindows 7)で動作しますが、例外をスローして1つ(Windows Vista)で失敗します。

「System.ServiceModel/Bindings」の構成セクションハンドラーの作成が発生しました。そのアセンブリは、部分的に信頼できる発信者を許可していません。 (k: somepath testing.exe.config line 6)

ソリューションが実際にそのコンピューターの部分的な信頼の下で実行される場合、この例外は完全にOKになりますが、完全な信頼の下で実行されます。コードへの完全な信頼をチェックしても、それは真実です。

インターネットのオプションを、それが動作するコンピューターの1つで再びチェックしました - 違いはありません。

すべてのdllファイルとexeファイルは強力な名前です。

アップデート:ネットワークドライブは特定のコンピューターで完全に信頼されています(caspol.exe).

何を探すべきですか?

追加情報が必要な場合は、お知らせください。

更新2:私たちはまだその問題を抱えており、今では1つのコンピューター(Windows 7)でもあります。したがって、それは独立しているようです。

役に立ちましたか?

解決 2

ここには解決策が見つかりませんでしたが、回避策:バインディング設定にapp.configを使用しないでください。コードでそれらを設定すると、同じ環境で機能します。

これ ちなみに質問も同様の問題を処理しているようです。 Hth

他のヒント

それは呼ばれています コードアクセスセキュリティ (CAS)、そしてそれはすべての信頼されていないネットワークドライブを強制的に強制します。

ローカルコードには完全な信頼があり、ネットワークコードには部分的な信頼があり、インターネットコードには信頼がありません。それは.NETのみのセキュリティモデルです。あなたのオプションは、完全な権利を与えることにより、ネットワークドライブを「信頼できる」ドライブとして指定することです(の検索 caspol.exe 完全なトラストネットワークドライブ)またはEXEファイルをローカルドライブにコピーします。

カスポールを使用して、ネットワークシェアを完全に信頼します あなたを助けるべきです。

またはコマンドラインで:

CasPol.exe -m -pp off -ag 1.2 -url file://///server/share/* FullTrust .

app.config->プロパティ - > bockを右クリックします

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top