これが問題です。
MS SQL データベースにクエリを実行し、FAXCOMEXLIB を使用して FAX を送信する Windows サービスを C# (Visual Studio 2012) で作成しました。
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 ビットでサービスを実行しようとしましたが、まったく同じ結果が得られました。
アドバイスをいただければ幸いです。