2010-01-15 40 views
1

我已經開發了一個小工具來上傳工資信息給瑞士政府,並且我使用了WSE 3.0成功。但現在,我的一個客戶報告說,他的機器上,我的程序崩潰與下面的堆棧跟蹤:WSE032錯誤,WebServicesConfiguration無法加載配置。部分

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中<security>節點上方排序修復該問題(在WSE032錯誤消失),但是這不是我的情況的解決方案,如我需要以這種方式配置安全性,以便能夠簽署稍後傳輸的數據。

任何想法可能是什麼問題。顯然,WSE 3.0已經安裝在客戶機器上,否則,在發生WSE032錯誤之前,堆棧跟蹤不會在調用者中顯示它。

回答

3

看起來客戶正在從共享上的盤符執行程序;儘管我認爲.NET 3.5 SP1允許從LocalIntranet_Zone啓動EXE的完全信任特權,但這似乎是加載可執行文件的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:份額;請注意,namedescription純粹是信息性的。

此命令提供驅動器上的所有可執行文件N:FullTrust權限,就像它們是從本地資源(例如硬盤驅動器)啓動一樣。

請參閱MSDN上的How to: Grant Permissions on Folders and Assemblies