我的C#類中有以下代碼,它可以遠程連接到遠程計算機上的COM +服務器。如何從C#客戶端連接到VB6 Com +服務器
Initailly它在Activator.CreateInstance
失敗,因爲我沒有COM +服務器上的用戶是誰啓動客戶端的用戶相同。
我在客戶機上安裝了COM +代理存根,並將它們導入到我的C#項目中。 在IDL文件中,只有一個接口定義_ AddressLookup
,它繼承自IDispatch
,但在C#中的對象查看器中似乎有兩個接口,_ AddressLookup
和AddressLookup
。
private string CreateEarly(string server)
{
try
{
Type typeADLClass = typeof(LookupBusiness.AddressLookupClass);
Type typeDCOM = Type.GetTypeFromCLSID(typeADLClass.GUID,
server,
true);
object objAdd = Activator.CreateInstance(typeDCOM);
AddressLookupClass AddressLookupClass_result = (AddressLookupClass) Marshal.CreateWrapperOfType(objAdd, typeADLClass);
}
catch(Exception e)
{
return e.Message;
}
return "Create - success";
}
當我運行這段代碼,我得到:
源對象不能被轉換爲目標類型,因爲它 不支持所有必需的接口。
如果我嘗試使用後期綁定:
object[] myArguments= {"www.zenei.co.uk", "39"};
object c;
c = typeDCOM.InvokeMember("Gett", BindingFlags.InvokeMethod, null, objAdd, myArguments);
我收到接口不支持IDispatch
。
誰能幫助?