Ошибка WSE032, WebServicesConfiguration не удается загрузить конфигурацию.Раздел

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

Вопрос

Я разработал небольшой инструмент для загрузки информации о зарплате в швейцарскую администрацию и успешно использовал 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.

Это было полезно?

Решение

Похоже, что клиент выполнял программу с буквы диска, установленной на общем ресурсе;несмотря на то, что я думал, что .NET 3.5 SP1 предоставляет привилегии полного доверия бывшим, запущенным с 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top