1

給与情報をスイスの行政機関にアップロードするための小さなツールを開発し、WSE3.0を使用して成功しました。しかし今、私の顧客の1人が、彼のマシンで、次のスタックトレースでプログラムがクラッシュすることを報告しました。

WSE032: There was an error loading the microsoft.web.services3 configuration section.
  at Microsoft.Web.Services3.Configuration.WebServicesConfiguration.get_Current()
  at Microsoft.Web.Services3.Configuration.WebServicesConfiguration.get_MessagingConfiguration()
  at Microsoft.Web.Services3.WebServicesClientProtocol..ctor()
  ...

私はこれが何を意味するのかを理解しようとしましたが、私はここで少し迷っていることを認めなければなりません。プログラムには.exe.config、次の内容のファイルがあります。

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="microsoft.web.services3" type="Microsoft.Web.Services3.Configuration.WebServicesConfiguration, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    ...
  </configSections>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
  <microsoft.web.services3>
    <security>
      <x509 allowTestRoot="false" storeLocation="CurrentUser" skiMode="RFC3280"/>
    </security>
  </microsoft.web.services3>
...
</configuration>

<security>上記のXMLからノードを削除すると、問題修正されます(WSE032エラーは消えます)が、後で送信するデータに署名できるようにセキュリティをこのように構成する必要があるため、これは私の場合の解決策ではありませんの上。

何が問題になる可能性があるかについての考え。明らかに、WSE 3.0はお客様のマシンにインストールされています。そうでない場合、WSE032エラーが発生する前に、スタックトレースが呼び出し元にWSE3.0を表示していなかったためです。

4

1 に答える 1

3

顧客は、共有にマウントされたドライブ文字からプログラムを実行していたようです。.NET 3.5 SP1では、から起動されたEXEに対する完全な信頼特権が許可されていると思いましたがLocalIntranet_Zone、これは実行可能ファイルのWSE構成セクションの読み込みに関する問題のようです。

これを修正するために、私はcaspolここで見つけることができる実行しました:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\caspol.exe

コマンドラインは、次の行に沿ったものです。

caspol -m -ag LocalIntranet_Zone -url N:\* FullTrust -n "name" -d "description"

ドライブ文字にマウントされた共有のN:場合; namedescriptionは純粋に情報提供であることに注意してください。

このコマンドは、ドライブ上で見つかったすべての実行可能ファイルに、ローカルリソース(ハードディスクドライブなど)から開始されたかのように特権を与えますN:FullTrust

方法: MSDNのフォルダーとアセンブリにアクセス許可を付与するを参照してください。

于 2010-01-15T12:41:03.713 に答える