Ошибка WSE032, WebServicesConfiguration не может загрузить конфигурацию. раздел - PullRequest
1 голос
/ 15 января 2010

Я разработал небольшой инструмент для загрузки информации о зарплате в швейцарскую администрацию и успешно использовал WSE 3.0. Но теперь один из моих клиентов сообщил, что на его компьютере моя программа вылетает со следующей трассировкой стека:

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.

1 Ответ

3 голосов
/ 15 января 2010

Похоже, что клиент выполнял программу с буквы диска, установленной на общем ресурсе; хотя я думал, что .NET 3.5 с пакетом обновления 1 (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:; обратите внимание, что name и description являются чисто информационными.

Эта команда дает всем исполняемым файлам, найденным на диске, N: привилегию FullTrust, как если бы они были запущены с локального ресурса (например, жесткого диска).

См. Как: предоставить разрешения для папок и сборок для MSDN.

...