WSE032 错误,WebServicesConfiguration 无法加载配置。部分
我开发了一个小工具来向瑞士政府上传工资信息,并成功使用了 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>
从上面的 XML 中删除
节点可以修复以下问题:问题(WSE032 错误消失),但这对我来说不是解决方案,因为我需要以这种方式配置安全性,以便能够对我稍后传输的数据进行签名。
知道可能是什么问题。显然,WSE 3.0 已安装在客户的计算机上,否则,在 WSE032 错误发生之前,堆栈跟踪不会在调用方中显示它。
I have developed a small tool to upload salary information to the swiss administration and I used WSE 3.0 with success. But now, one of my customers has reported that on his machine, my program crashes with the following stack trace:
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()
...
I've tried to figure out what this means, but I must admit that I am a bit lost here. The program has a .exe.config
file with the following contents:
<?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>
Removing the <security>
node from the XML above sort of fixes the issue (the WSE032 error vanishes) but this is not a solution in my case, as I need to configure the security this way in order to be able to sign the data I am transmitting later on.
Any idea what could be the issue. Obviously, WSE 3.0 has been installed on the customer's machine, since otherwise, the stack trace would not have shown it in the callers before WSE032 error happens.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
客户似乎是从安装在共享上的驱动器盘符执行该程序;尽管我认为 .NET 3.5 SP1 允许对从 LocalIntranet_Zone 启动的 EXE 具有完全信任权限,但这似乎是加载可执行文件的 WSE 配置部分的问题。
为了解决这个问题,我运行了
caspol
,可以在这里找到:命令行的内容大致如下:
对于安装在驱动器号
N:
上的共享;请注意,name
和description
纯粹是提供信息的。此命令为驱动器
N:
上找到的所有可执行文件授予FullTrust
权限,就像它们是从本地资源(例如硬盘驱动器)启动一样。请参阅如何:授予对文件夹和程序集的权限 在 MSDN 上。
It appears that the customer was executing the program from a drive letter mounted on a share; even though I thought that .NET 3.5 SP1 allowed full trust privilege to EXEs launched from the
LocalIntranet_Zone
, this seems to be an issue with the loading of the WSE configuration section of the executable.To fix this, I ran
caspol
which can be found here:The command line is something along the lines of:
for a share mounted on drive letter
N:
; note thatname
anddescription
are purely informational.This command gives all executables found on the drive
N:
theFullTrust
privilege, just as if they were started from a local resource (hard disk drive, for instance).See How to: Grant Permissions on Folders and Assemblies on MSDN.