[WSE]手動安裝Web Services Enhancements 2.0 SP3

[WSE]手動安裝Web Services Enhancements 2.0 SP3

前言

因為系統有使用WSE 2.0,所以User在使用系統時需要安裝Web Services Enhancements 2.0 Runtime,
但是在有台XP的PC上卻無法安裝,會出現以下的錯誤訊息!

image

解析問題

看起來都像是沒有權限的樣子,但是User卻可以在System32的目錄新增檔案及目錄。
原本安裝程式是放在桌面上安裝,結果有錯誤!
請User將安裝程式放在C:\下安裝,結果還是錯誤!

SetupAtC

SetupAtC2

image

尋找辦法

如果安裝程式無法安裝,那就使用手動安裝,查看WSE的安裝目錄中,有一個Microsoft.Web.Services2.dll及WSE.config,
那應該直接將Microsoft.Web.Services2.dll放到執行檔的相同目錄試試看!
結果卻發生了「WSE032: There was an error loading the microsoft.web.services2 configuration section.」錯誤!

WSE032
再看整個錯誤訊息,如下,

Microsoft.Web.Services2, Version=2.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
logged by MyClass, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null on xxxx [PID:1712]
at System.Configuration.ConfigurationRecord.GetFactory  <System.Configuration.ConfigurationException>
無法建立 Microsoft.Web.Services2.Configuration.WebServicesConfiguration, Microsoft.Web.Services2
, Version=2.0.0.0
, Culture=neutral, PublicKeyToken=31bf3856ad364e35 
at Microsoft.Web.Services2.Configuration.WebServicesConfiguration.Initialize  <System.Configuration.ConfigurationException>
WSE032: There was an error loading the microsoft.web.services2 configuration section. 
at Microsoft.Web.Services2.Configuration.WebServicesConfiguration.Initialize()
at Microsoft.Web.Services2.Referral.ReferralCache.Initialize()
at Microsoft.Web.Services2.Referral.ReferralCache.ResolvePath(Uri uri)
at Microsoft.Web.Services2.WebServicesClientProtocol.set_Destination(EndpointReference value)
at Microsoft.Web.Services2.WebServicesClientProtocol.set_Url(String value)

判斷問題

發現無法建立Configuration,其中發現我的版本是2.0.3.0而要建立的是2.0.0.0!
所以將系統的config改成2.0.3.0,就可以順利執行!

<section name="microsoft.web.services2" type="Microsoft.Web.Services2.Configuration.WebServicesConfiguration, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

改成

<section name="microsoft.web.services2" type="Microsoft.Web.Services2.Configuration.WebServicesConfiguration, Microsoft.Web.Services2, Version=2.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

結論

手動安裝DLL後,還要讓使用的版本與config指定的版本相符才能讓系統運作正常!
使用安裝程式安裝的話,可能同時有安裝WSE的Policy組件,所以版本不符還能對到最新的版本!

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^