在C#中获得一个 'System.AccessViolationException' 异常使用的RightFax

问题描述:

我试图通过RightFax的COM API库来发送传真:在C#中获得一个 'System.AccessViolationException' 异常使用的RightFax

RFCOMAPILib.FaxServer server = new RFCOMAPILib.FaxServer(); 
    server.ServerName = "xxx"; 
    server.Protocol = CommunicationProtocolType.cpTCPIP; 
    server.UseNTAuthentication = BoolType.True; 

    // Error happens here 
    server.OpenServer(); 

    RFCOMAPILib.Fax fax = (RFCOMAPILib.Fax)server.get_CreateObject(RFCOMAPILib.CreateObjectType.coFax); 

    fax.ToName = "Batman"; 
    fax.ToFaxNumber = "23434484"; 
    fax.FromFaxNumber = "78678676"; 
    fax.FromName = "Robin"; 
    fax.Send(); 

我已经注册的DLL文件rfcomapi.dll

C:\Program Files\RightFAX> RegSvr32 rfcomapi.dll  

不幸的是,在运行此代码时,出现以下错误;

未处理的异常:system.AccessViolationException:试图读取或写入受保护的内存。这通常表明其他内存已损坏。

我正在使用RightFax的9.4.0.0版本。

我该如何解决这个问题?

+0

你在哪一行代码中得到这个错误?这不是你的代码中的东西。托管代码不会抛出(或者甚至允许)这样的错误,而不是没有额外的工作。顺便说一句,只注意到这行代码:fax.FromFaxNumber = fax.ToFaxNumber;看起来它可能会导致API错误。 – 2010-12-17 04:35:45

+0

谢谢保罗。我会澄清我的问题。我得到错误之前,我得到它时调用OpenServer()或如果我删除该行我得到它@ server.get_CreateObject( - ) – Intrigue 2010-12-17 04:41:43

+0

你有其他支持DLL(RFWin32.dll,Rfi32rpc .ndr和Rfi32smb.ndr)以及rfcomapi.dll? – VinayC 2010-12-17 06:55:16

问题是服务器名称不正确,因为我们无法在我们的网络中解析该名称。我ping服务器,我什么也没有,但是我得到了它的IP地址,它工作正常!

总是用RightFax ping服务器!您将要获得的错误消息不是很具描述性!

你的代码本身是完美的。我可以用我的9.4 RightFax运行它,没有任何问题。您可能需要检查您的授权,以确保您的帐户在服务器中完全授权。

+0

谢谢队友。我一直想知道我所提供的证书是否与服务器中实际配置的证书一致。我发送了一封电子邮件给管理员,要求澄清这一点。干杯。 – Intrigue 2010-12-18 00:47:36