2010-01-15 3 views
1

j'ai développé un petit outil pour télécharger des informations de salaire à l'administration suisse et moi WSE 3.0 avec succès. Mais maintenant, un de mes clients a rapporté que sur sa machine, mon programme se bloque avec la trace de pile suivante:Erreur WSE032, WebServicesConfiguration ne peut pas charger la configuration. section

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

J'ai essayé de comprendre ce que cela signifie, mais je dois admettre que je suis un peu perdu ici. Le programme a un fichier .exe.config avec le contenu suivant:

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

Retrait du nœud <security> à partir du XML ci-dessus sorte de résout le problème (l'erreur WSE032 disparaît), mais ce n'est pas une solution dans mon cas, comme J'ai besoin de configurer la sécurité de cette façon afin de pouvoir signer les données que je transmets plus tard.

Toute idée de ce que pourrait être la question. Évidemment, WSE 3.0 a été installé sur la machine du client, sinon, la trace de la pile ne l'aurait pas montrée dans les appelants avant que l'erreur WSE032 n'arrive.

Répondre

3

Il semble que le client exécutait le programme à partir d'une lettre de lecteur monté sur une part; même si je pensais que le privilège de confiance totale autorisée .NET 3.5 SP1 à EXEs lancé à partir du LocalIntranet_Zone, cela semble être un problème avec le chargement de la section de configuration WSE de l'exécutable.

Pour résoudre ce problème, je courais caspol qui se trouve ici:

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

La ligne de commande est quelque chose le long des lignes de:

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

pour une part monté sur lettre de lecteur N:; notez que name et description sont purement informatif.

Cette commande donne à tous les exécutables présents sur le disque le privilège FullTrust, comme s'ils avaient été démarrés à partir d'une ressource locale (disque dur, par exemple).

Voir How to: Grant Permissions on Folders and Assemblies sur MSDN.

Questions connexes