我正在尝试访问以下IDL中描述的接口LicenseServerFactory
:
typedef sequence<octet> usBuffer;
enum LicenseClientUTFType {LIC_UTF16 , LIC_UTF32};
exception NotAuthenticated {};
exception UserNotConnected {};
interface LicenseServer
{
long SBOConnect (in usBuffer User, in usBuffer Company, in usBuffer PCName, out usBuffer SessionE, in long lDate, in usBuffer sInstallNo) raises(NotAuthenticated);
long AddOnGetLicense (in usBuffer Identifier, in usBuffer User, in usBuffer Company, in usBuffer PCName, out long plSessionID, out usBuffer SessionE, in long lDate, in usBuffer sInstallNo) raises(NotAuthenticated);
long PollSession (in usBuffer User, in usBuffer SIDs, out usBuffer RetE) raises(NotAuthenticated);
long SessionsInfo (in usBuffer User, in usBuffer SessionsInfo, out usBuffer SessionsInfoE, in long lDate) raises(NotAuthenticated);
long SessionVerify (in usBuffer User, in long lSessionID, out usBuffer pSessionIdE) raises(NotAuthenticated);
long CloseSession (in usBuffer User, in long lSessionId) raises(NotAuthenticated);
long LockServer (in usBuffer User, in long lSessionID) raises(NotAuthenticated);
long UnLockServer (in usBuffer User, in long lSessionID) raises(NotAuthenticated);
long GetUserLicenseInfo (in usBuffer User, out usBuffer pModules, out boolean pbIsConnected) raises(NotAuthenticated);
long GetAllModulesStatus (out usBuffer pModulesInfo) raises(NotAuthenticated);
long LoadLicenseFile (in usBuffer NewLicenseFile) raises(NotAuthenticated);
long GetHardwareKey (out usBuffer pHK) raises(NotAuthenticated);
long CreateIdentifier (in usBuffer Addon, out usBuffer pIdentifier, in usBuffer sInstallNo) raises(NotAuthenticated);
long GetAllUsersLicenseInfo(out usBuffer pUsersLicInfo) raises(NotAuthenticated);
long SetAllUsersLicenseInfo(in usBuffer User, in usBuffer UsersLicInfo, out usBuffer pConnectedUser) raises(NotAuthenticated,UserNotConnected);
long IsDevExist (in usBuffer sInstallNo);
long GetInstallationNumberList(out usBuffer pInstNum);
long GetSystemNumber (out usBuffer pSysNum, in usBuffer sInstallNo);
long GetFutureExpired(in long lFutureDate, out usBuffer pModules, in usBuffer sInstallNo);
long GetUserSessionsInfo(in usBuffer UserName,out usBuffer pRsltSessionsInfo);
long GetBIGSLicense (in usBuffer User, in usBuffer Company, in usBuffer PCName, in long lNum, out usBuffer pSessionsE, in long lDate, in usBuffer sInstallNo) raises(NotAuthenticated);
boolean IsLicenseFileExist();
long GetVersion(out usBuffer sVersion);
long ClearUserLicenses (in usBuffer User) raises(NotAuthenticated);
long UpdateUserLicenses (in usBuffer User, out usBuffer ModulesE, in long lDate, in long lSessionID, in usBuffer sCmpLocalization, in usBuffer sCmpVersion) raises(NotAuthenticated);
long RequestNamedLicenses (in usBuffer User, out usBuffer ModulesE, in long lDate, in long lSessionID, in usBuffer sCmpLocalization, in usBuffer sCmpVersion) raises(NotAuthenticated);
long IsLicenseConcurrent () raises(NotAuthenticated);
long GetLicenseFileGenInfo(in usBuffer sInstallNo, out usBuffer sLicGenInfo);
//long DeleteLicenseFile (in usBuffer sInstallNo) raises(NotAuthenticated);
long HandShake(in long algorithm, in usBuffer publicKey, out usBuffer sessionKey) raises(NotAuthenticated);
long GetCompanyDBCredentials(in long dbType, in usBuffer server, in usBuffer company, in usBuffer user, in usBuffer password, out usBuffer dbUser, out usBuffer dbPassword, out boolean useTrusted) raises(NotAuthenticated);
long GetDBCredentials(in long dbType, in usBuffer server, in usBuffer siteUser, in usBuffer password, out usBuffer dbUser, out usBuffer dbPassword, out boolean useTrusted) raises(NotAuthenticated);
long GetCompanyReadOnlyDBCredentials(in long dbType, in usBuffer server, in usBuffer company, in usBuffer user, in usBuffer password, out usBuffer dbUser, out usBuffer dbPassword) raises(NotAuthenticated);
long GetReadOnlyDBCredentials(in long dbType, in usBuffer server, in usBuffer siteUser, in usBuffer password, out usBuffer dbUser, out usBuffer dbPassword) raises(NotAuthenticated);
long GetListOfCompanies(in long dbType, in usBuffer server, in boolean refresh, out usBuffer listOfCompanies);
long GetCompanyEncryptionConfig(in long dbType, in usBuffer server, in usBuffer company, in usBuffer user, in usBuffer password, out long algorithm, out usBuffer keyId, out usBuffer key) raises(NotAuthenticated);
long GetEncryptionConfig(in usBuffer siteUser, in usBuffer password, out long algorithm, out usBuffer keyId, out usBuffer key) raises(NotAuthenticated);
long SetDBCredentials(in long dbType, in usBuffer server, in usBuffer siteUser, in usBuffer password, in usBuffer dbUser, in usBuffer dbPassword, in boolean useTrusted) raises(NotAuthenticated);
long RemoveDBCredentials(in long dbType, in usBuffer server, in usBuffer siteUser, in usBuffer password) raises(NotAuthenticated);
long GetServerVersion(in long dbType, in usBuffer server, out usBuffer version, in usBuffer commonDBName);
long SetReadOnlyDBCredentials(in long dbType, in usBuffer server, in usBuffer siteUser, in usBuffer password, in usBuffer dbUser, in usBuffer dbPassword) raises(NotAuthenticated);
long SetEncryptionAlghorithm(in usBuffer siteUser, in usBuffer password, in long algorithm) raises(NotAuthenticated);
long GenerateEncryptionKey(in usBuffer siteUser, in usBuffer password) raises(NotAuthenticated);
long GetServicesUserCredentials(in usBuffer siteUser, in usBuffer password, out usBuffer servicesUser, out usBuffer servicesPassword) raises(NotAuthenticated);
long ExportSecuritySettings(in usBuffer siteUser, in usBuffer password, out usBuffer xmlSettings) raises(NotAuthenticated);
long ImportSecuritySettings(in usBuffer siteUser, in usBuffer password, in usBuffer xmlSettings) raises(NotAuthenticated);
long GetListOfConfiguredServers(out usBuffer listOfServers);
long GetSiteUserName(out usBuffer siteUser);
long AuthenticateSiteUser(in usBuffer siteUser, in usBuffer password, out boolean result) raises(NotAuthenticated);
long AuthenticateServicesUser(in usBuffer siteUser, in usBuffer password, out boolean result) raises(NotAuthenticated);
long ChangeSiteUserPassword(in usBuffer siteUser, in usBuffer oldPassword, in usBuffer password) raises(NotAuthenticated);
long ChangeSiteUserPasswordByDB(in long dbType, in usBuffer server, in usBuffer dbUser, in usBuffer dbPassword, in usBuffer password) raises(NotAuthenticated);
long GetCompanyStaticKey(in long dbType, in usBuffer server, in usBuffer company, in usBuffer user, in usBuffer password, out usBuffer key) raises(NotAuthenticated);
long GetStaticKey(in usBuffer siteUser, in usBuffer password, out usBuffer key) raises(NotAuthenticated);
long GetEncryptionAlgorithm(out long algorithm);
long IsNTTrusted(in long dbType, in usBuffer server, out boolean isNTTrusted);
long IsDKeyUsed(out boolean result);
long ExportDKeys(in usBuffer siteUser, in usBuffer password, out usBuffer xmlDKeys) raises(NotAuthenticated);
long ImportDKeys(in usBuffer siteUser, in usBuffer password, in usBuffer xmlDKeys) raises(NotAuthenticated);
long GenerateDKey(in usBuffer siteUser, in usBuffer password, out usBuffer xmlDKeys) raises(NotAuthenticated);
long EnableDKey(in usBuffer siteUser, in usBuffer password, out usBuffer xmlDKeys) raises(NotAuthenticated);
long GetCompanyKeyAndKeyState(in long dbType, in usBuffer server, in usBuffer company, in usBuffer user, in usBuffer password, in usBuffer compKeyId, out long keyState, out usBuffer compKey)raises(NotAuthenticated);
long GetKeyAndKeyState(in usBuffer siteUser, in usBuffer password, in usBuffer compKeyId, out long keyState, out usBuffer compKey)raises(NotAuthenticated);
};
interface LicenseServerFactory
{
LicenseServer GetLicenseServer(in LicenseClientUTFType ClientUTFType);
};
使用以下C#代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Remoting.Channels;
using omg.org.CosNaming;
using Ch.Elca.Iiop;
using Ch.Elca.Iiop.Services;
using Ch.Elca.Iiop.Idl;
[Ch.Elca.Iiop.Idl.RepositoryID("IDL:LicenseServer:1.0")]
public interface IGtLicenseServer
{ Int32 AuthenticateSiteUser ([IdlSequence(0)] byte[] siteUser, [IdlSequence(0)] byte[] password, out bool result);
Int32 AuthenticateServicesUser([IdlSequence(0)] byte[] siteUser, [IdlSequence(0)] byte[] password, out bool result);
}
[IdlEnumAttribute]
public enum LicenseClientUTFType {LIC_UTF16 , LIC_UTF32};
[Ch.Elca.Iiop.Idl.RepositoryID("IDL:LicenseServerFactory:1.0")]
public interface LicenseServerFactory
{
IGtLicenseServer GetLicenseServer(LicenseClientUTFType ClientUTFType);
};
// [...]
// This is a class's constructor:
public LicenseServer(string server, int port)
{ NameComponent[] names = null;
CorbaInit init = CorbaInit.GetInit();
IiopClientChannel channel = new IiopClientChannel();
ChannelServices.RegisterChannel(channel, false);
NamingContext context = init.GetNameService(server, port);
Binding[] binding;
BindingIterator bi;
context.list(4, out binding, out bi);
names = new NameComponent[] { new NameComponent("B1LicenseServer2008Factory") };
LicenseServerFactory lf = ( LicenseServerFactory )context.resolve( names );
IGtLicenseServer ls = lf.GetLicenseServer(LicenseClientUTFType.LIC_UTF32);
}
并在调用lf.GetLicenseServer()
期间收到以下错误:“CORBA系统异常:omg.org.CORBA.BAD_PARAM,已完成:Completed_MayBe minor:10030”。你对可能导致它的原因有什么建议吗?