2012-12-07 69 views
1

以下是問題所在。FAXCOMEX的C#實現中的System.Runtime.InteropServices.COMException錯誤LIb​​

我在C#(Visual Studio 2012)中編寫了一個Windows服務,它查詢MS SQL數據庫,然後使用FAXCOMEXLIB發送傳真。

我能夠引用FAXCOMEXLIB並使用服務器類和傳真文檔類。 傳真已創建併發送。

然而,當我嘗試使用任何其他類別的FAXCOMEXLIB庫,我得到以下錯誤,當我運行的服務(它編譯沒有任何錯誤):

System.Runtime.InteropServices.COMException (0x80040111): Retrieving the COM class 
factory for component with CLSID {43C28403-E04F-474D-990C-B94669148F59} failed due to 
the following error: 80040111 ClassFactory cannot supply requested class (Exception from HRESULT: 0x80040111 (CLASS_E_CLASSNOTAVAILABLE)). 
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) 

這是由

FAXCOMEXLib.FaxOutgoingArchive faxOutgoing = new FAXCOMEXLib.FaxOutgoingArchive(); 
觸發

我試圖運行

regsvr32.exe fxscomex.dll 

它並沒有幫助。

我也嘗試手動創建並導入以下注冊表項。

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{43C28403-E04F-474D-990C-B94669148F59}] 
@="FaxOutgoingArchive Class" 

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{43C28403-E04F-474D-990C-B94669148F59}\InprocServer32] 
@=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,\ 
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,66,00,78,00,\ 
73,00,63,00,6f,00,6d,00,65,00,78,00,2e,00,64,00,6c,00,6c,00,00,00 
"ThreadingModel"="Apartment" 

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{43C28403-E04F-474D-990C-B94669148F59}\ProgID] 
@="FaxComEx.FaxOutgoingArchive.1" 

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{43C28403-E04F-474D-990CB94669148F59}\Programmable] 

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{43C28403-E04F-474D-990C-B94669148F59}\TypeLib] 
@="{2BF34C1A-8CAC-419F-8547-32FDF6505DB8}" 

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{43C28403-E04F-474D-990C-B94669148F59}\Version] 
@="1.0" 

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{43C28403-E04F-474D-990C-B94669148F59}\VersionIndependentProgID] 
@="FaxComEx.FaxOutgoingArchive" 

註冊表項沒有幫助。 我試圖在Windows 7 64位,Windows Server 2012 64位和Windows Server 2008 32位上運行該服務,並得到相同的結果。

任何意見將不勝感激。

+0

我知道這是晚了,但你能告訴我,如果你使用的LocalSystem帳戶在Windows服務發送傳真?我們遇到了FaxComExLib發送傳真但傳真未出現在Windows傳真發件箱中的問題。 – Ray

回答

1

這是您代碼中的錯誤,您不應該自己創建一個FaxOutgoingArchive實例。它在MSDN documentation中明確指出:

要在Microsoft Visual Basic中創建FaxOutgoingArchive對象,請檢索FaxFolders對象的OutgoingArchive屬性。

如果這是令人困惑,同樣的規則適用於C#

+0

謝謝。這是我的一個愚蠢的錯誤。 – user1886041

相關問題