科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件深入研究VB.Net远程调用对象的机制

深入研究VB.Net远程调用对象的机制

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

NET结构提供一种与之不同的机制--远程调用,用于客户应用程序和远程对象之间的内部处理和LAN通讯。

作者:wayne 来源:yesky 2007年11月11日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
第五节 配置客户端

  就象主应用程序一样,你可以选择以编程方式配置客户应用程序而不是使用一个配置文件。然而,在beta 1中,在客户端上的改动并不像在服务器端上的改动那么容易,因为你还需要改变创建每一个对象实例的方法的代码。为了不使用New关键字来创建对象,你还需要使用Activator.GetObject方法。这利用了一个附带在客户机上的配置文件。

  改变配置客户机的方法,只要把调用替换为ConfigureRemoting,如下所示:

Dim c As New Channels.HTTP.HTTPChannel()
ChannelServices.RegisterChannel(c)

  这两行代码配置 HTTP通道,以便为使用它做好准备。然后你必须搜寻客户应用程序,找到使用 New关键字创建远程对象的代码:

obj = New NETclass()

  使用这个语句替换前面的那一行语句:

obj = CType(Activator.GetObject (GetType(NETserver.NETclass), _
       "http://localhost:8085/NETclass"), NETclass)

  这行语句很复杂,它调用GetObject方法从指定URI取得一个 NETserver.NETclass类型的对象。然后使用CType函数把得到的结果对象强制转换成 NETclass类型以便你可以在你的代码中使用它。

  你的客户机代码剩余部分就可以保持不变了,如果你决定使用编程配置你的客户应用程序,我推荐在一个函数中封装对象的创建过程,如下:

Private Function NewNETclass() As NETclass
 Return CType(Activator.GetObject( GetType(NETserver.NETclass),_
       "http://ineroth:8085/NETclass") , NETclass)
End Function

  然后,当你想得到这个对象的一个引用的话,你可以使用这个函数:

obj = NewNETclass()

  虽然这还不象使用 New关键字那么简单,它还是封装代码来创建远程对象。

  远程程序很难调试,这是因为你的客户应用程序有到你的远程程序直接的引用,当远程程序失败时而你的客户机看上去仍然在工作。这是因为如果远程调用过程失败的话,客户机就会试图调用对象的局部拷贝。

  你可以证明在这个函数返回它的值之前,通过在NETclass中添加一行代码调用远程对象来打印一则信息到控制台窗口:

Console.WriteLine("Returning " & CStr(dr.Item("au_lname"))_
          & ", " & CStr(dr.Item("au_fname")))

  现在,在你的主应用程序运行的服务器控制台窗口中,当它被调用时这个功能显示一则信息。当你运行客户应用程序时转换到控制台窗口并保证它显示这则信息。事实上,这证明你正在与远程对象交互。

  如果你在连接远程对象时遇到了麻烦,你可以通过使用浏览程序来测试这个主应用程序。在一个控制台窗口中运行这个主应用程序,然后打开 Internet Explorer并且定位到这个远程对象的 URI。在我的例子中,你将定位到这个 URI:

  
http://localhost:8085/NETclass

  如果主机正确操作,你应该看作为显示为一个页面或 XML的远程对象的SOAP定义(参见图3)。如果你没有看,主机可能就没能正确配置。



  你可以使用远程调用来创建 N层应用程序,只要通过调用 Active Server Pages ( ASP.NET )或者来自 VB.NET客户端应用程序中的 remote组件。 你也可以通过把 NEThost放进 Windows 2000 Service Application中,来增强这个例子的功能。因为那样的话,服务器在这台机器运行的任何时候都可用。你还可以使用它从一个数据库中返回数据,或者执行其他需要的服务器端处理过程。 你还可以使用 ASP.NET页面或者 VB.NET Windows应用程序来替换本文中的简单的例子,这样你就可以向你的用户显示你丰富的才华了。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章