Pregunta

he desarrollado una pequeña herramienta para cargar la información salarial de la administración suiza y utilizado con éxito WSE 3.0. Pero ahora, uno de mis clientes ha informado de que en su máquina, mi programa se bloquea con el seguimiento de pila:

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()
  ...

He tratado de averiguar lo que esto significa, pero debo admitir que estoy un poco perdido aquí. El programa tiene un archivo .exe.config con el siguiente contenido:

<?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>

La eliminación del nodo <security> del XML anterior tipo de corrige el problema (desaparece el error WSE032), pero esto no es una solución en mi caso, ya que necesito para configurar la seguridad de esta manera con el fin para poder firmar los datos que yo estoy transmitiendo más adelante.

¿Alguna idea de lo que podría ser el problema. Obviamente, WSE 3.0 se ha instalado en la máquina del cliente, ya que de lo contrario, el seguimiento de pila no se habría demostrado que en las personas que llaman antes de que ocurra el error WSE032.

¿Fue útil?

Solución

Parece ser que el cliente se ejecuta el programa desde una letra de unidad montada en un recurso compartido; a pesar de que pensé que .NET 3.5 SP1 permitido privilegio plena confianza a EXE lanzados desde el LocalIntranet_Zone, esto parece ser un problema con la carga de la sección de configuración de WSE del ejecutable.

Para solucionar este problema, me encontré caspol que se puede encontrar aquí:

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

La línea de comandos es algo a lo largo de las líneas de:

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

de una parte montada en letra de unidad N:; en cuenta que name y description son meramente informativos.

Este comando da todos los ejecutables que se encuentran en la unidad N: el privilegio FullTrust, igual que si se iniciaron a partir de un recurso local (unidad de disco duro, por ejemplo).

Cómo: Conceder permisos en carpetas y ensamblados en MSDN.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top