6

WCF behaviorExtension を追加した .NET 4 .exe (Winform デスクトップ アプリ) があります。アプリはローカル マシンでは正常に読み込まれますが、ネットワーク経由で読み込まれると SecurityException がスローされます。setMaxFaultSizeBehavior behaviorExtension を省略した場合、ネットワーク経由でアプリをロードできます。これを機能させるのに役立つ情報をいただければ幸いです。ファイルがブロックされていないこと、およびアセンブリ名がスペースを含めて完全に一致していることを確認しました。

app.config の関連部分は次のようになります (型名とアセンブリ名を短縮しました。実際の構成ファイルでは、完全な名前空間とアセンブリ名を使用しています)。

<system.serviceModel>
    <bindings configSource="bindings.config" />
    <client configSource="clients.config" />
    <extensions>
      <behaviorExtensions>
        <add name="setMaxFaultSizeBehavior" type="SetMaxFaultSizeBehavior, BehaviorAssembly, Version=1.8.0.0, Culture=neutral, PublicKeyToken=41b332442f1101cc" />
      </behaviorExtensions>
    </extensions>
    <behaviors>
      <endpointBehaviors>
       <behavior name="LargeQuotaBehavior">
          <dataContractSerializer maxItemsInObjectGraph="2147483600" />
          <setMaxFaultSizeBehavior />
       </behavior>
      </endpointBehaviors>
    </behaviors>

ネットワーク経由で実行しているときに発生する例外は次のとおりです。

An error occurred creating the configuration section handler for system.serviceModel/behaviors: Request failed. (\\server\Share\app.exe.Config line 22)
Exception Type: System.Configuration.ConfigurationErrorsException
Source: System.Configuration

System.Security.SecurityException の内部例外あり

4

1 に答える 1

5

先週、同じ問題が発生しました。展開エラーにまでさかのぼることができました....ネットワークの場所からアセンブリ ファイルをコピーするときに、それらを「ロック解除」するのを忘れていました。

つまり、WCF 拡張要素を含むアセンブリは、Windows によって安全でないとマークされました (ネットワーク上の場所からコピーされたため)。

これを修正するために行ったのは、このファイルの [プロパティ] ダイアログ (Windows エクスプローラー) で [ロック解除] ボタンをクリックすることだけでした。

于 2012-01-30T16:48:40.120 に答える