我做了一个COM组件,内有一个方法返回一个结果集,当COM组件服务器和WEB服务器为同台服务器时,可用VBScript调用。但是,当WEB服务器和组件服务器不同时,不能调用。
请问我该如何做呢?

解决方案 »

  1.   

    请注意将脚本设置为服务器端(RUNAT=Server),CreateObject函数的第二个参数为组件服务器机器名或IP,务必保证该组件已经在组件服务器上注册,最好将该组件注册为COM+,并将其设置为服务器程序(进程外服务).如下为调用代码
    <SCRIPT LANGUAGE=vbscript RUNAT=Server>   
    strServerName = "\\192.168.11.129"  'JYUI.UIConn所在服务
                                        '器(即应用服务器)IP地址或机器名,Set objJYUI = CreateObject ("JYUI.UIConn",strServerName)   
                                        '注意 CreateObject的第二个参数...               '至此JYUI.UIConn的实例已经生成,其它程序不必变更.
    </SCRIPT>
      

  2.   

    我的也是这样,
    错误类型:
    Microsoft VBScript 编译器错误 (0x800A0414)
    请问什么问题呢?
      

  3.   

    用interDev跟踪查错,若有还有问题就把脚本发给我吧:
    [email protected]
      

  4.   

    <Script Language = VBScript RunAt = Server>
    Dim rsTest, oTestPassRs
    Dim Statement
    Dim source
    Dim strServerNamestrServerName = "\\192.168.0.80"
    source = "DSN=hisdata;uid=sa;pwd=;"
    Statement = "select * from drugbase"
    '运行时下面的一行报错:Microsoft VBScript 运行时错误 (0x800A01B6)
    Set oTestPassRs = CreateObject("PassRs.PassRsObj",strServerName)
    Set rsTest = oTestPassRs.QueryDSN(source,Statement)Do 
       Response.Write ( rsTest(0) & "     "& rsTest(1) & "     "& rsTest(2)& "     "& rsTest(4) &"<BR>" )
       rsTest.MoveNext
    Loop until rsTest.EOFrsTest.Close
    Set rsTest = Nothing
    Set oTestPassRs = Nothing
    </Script> 
      

  5.   

    脚本应该是没有错的,我已经将你的脚本改为调用我自己的组件使用通过了,
    我想应该是你的组件有问题,
    请务必保证该组件已经在组件服务器上注册,将该组件注册为COM+,并将其设置为服务器程序(进程外服务).还有保证你有访问该组件的权限
    最好用VB试着调用一下,如果VB远程调用也有问题就应该是组件的问题了.