サービス参照を保持するComVisible .Net(C#)dllを作成しました。 外部COMクライアント(VBScript)からdllにアクセスしようとすると、オブジェクトを作成するたびに例外がスローされます。dllのサービスリファレンスの新しいキーワード
スローされた例外はInvalidOperationException(0x80131509)です。
短い調査の後、私はそれがサービス参照オブジェクトの作成に失敗したことに気付きました(「新しい」)。
- 以下のコードに名前を使用されるサービス参照オブジェクトがコンストラクタで参照を作成しようとすると、C#のDLLの
- プライベート
ServiceClient
ServiceClient
ですまた、「新しい」キーワードを削除- を失敗しましたクラスまたはコンストラクタ両方がコードパスになりますから、
- サービスが稼働している
DLLコード:
namespace UIIdentifier.Updater
{
[ClassInterface(ClassInterfaceType.AutoDispatch)]
public class Client
{
[ComVisible(false)]
//<<--This throws the exception -->>
private ServiceClient uiSpySrv = new ServiceClient();
[ComVisible(true)]
public string hello()
{
return "hello";
}
}
}
クライアントコード:
Dim oUpdater
Set oUpdater = CreateObject("UIIdentifier.Updater.Client")
MsgBox oUpdater.hello
これがなぜ起こるか任意の提案ですか?
例外は何ですか? –
@JaredKells:InvalidOperationException(ID:0x80131509) –
メッセージングインフラストラクチャを設定するために設定ファイルにアクセスしようとしています(たとえば、適切なURLを取得している) - 呼び出し側のクライアントコードに設定ファイルがありません。 –