11

boo.exe(ドライブにマップされた)ネットワーク共有から.NETアセンブリ()を実行しようとすると、部分的にしか信頼されていないため失敗します。

Unhandled Exception: System.Security.SecurityException: That assembly does not allow partially trusted callers.
   at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
   at BooCommandLine..ctor()
   at Program..ctor()
   at ProgramModule.Main(String[] argv)
The action that failed was:
LinkDemand
The assembly or AppDomain that failed was:
boo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67
The Zone of the assembly that failed was:
Intranet
The Url of the assembly that failed was:
file:///H:/boo-svn/bin/boo.exe

ブログ投稿の指示に従ってfile:///H:/*、URLとしてすべてのアセンブリを完全に信頼するポリシーを.NET構成に追加しました。.NET構成のEvaluateAssemblyツールにURLfile:///H:/boo-svn/bin/boo.exeを入力し、boo.exeに無制限のアクセス許可(ポリシーの前にはなかった)があることに注意して、これを確認しました。

許可があっboo.exeても実行されません。それでも同じエラーメッセージが表示されます。

この問題をデバッグするにはどうすればよいですか?実行するアセンブリごとに何かを変更することなく、ネットワーク共有から「部分的に信頼できる」アセンブリを実行する別の方法はありますか?

4

4 に答える 4

5

.NET 3.5 SP1では、UNC共有から実行されている.NETアセンブリに完全なアクセス許可があります。

回避策と議論については、 BradAbramsのAllow.exesをネットワーク共有から実行することを参照してください。最後にフォローアップの.NET3.5 SP1を使用すると、ネットワーク共有からマネージコードを起動できます

于 2008-08-23T18:42:49.883 に答える
3

caspolJohnny Hughes のブログ投稿Running a .Net application from a network shareの指示に従って問題を解決しました。

caspol -addgroup 1.2 -url file:///H:/* FullTrust

ポリシーを管理するための .NET 構成 GUI が機能しないようです。

于 2008-08-25T16:48:07.037 に答える
2

「caspol.exe」プログラム (.NET ランタイムに付属) を見てください。アプリケーションを実行しようとしているマシンでこれを行う必要があります。「マーク」して組み立てることができませんでした(おそらく私だけです)。ただし、caspol を使用して、私のアプリ LocalIntranet_Zone に適切なアクセス許可を設定すると、同様の問題が修正されます。

.NET 3.5 sp1 では、この厳格なセキュリティ要件が削除されたと聞いています (ただし、まだ試していません) (既定では、.NET アセンブリが共有に存在することを許可していません)。

于 2008-08-23T18:50:09.863 に答える
0

AllowPartiallyTrustedCallers属性をアセンブリに追加したいと思います。エラーメッセージは、boo.exeアセンブリを呼び出しているものが完全に信頼されておらず、boo.exeにそれを許可するこの属性がないことを示しています。

于 2008-08-23T18:45:22.480 に答える