自定义代理技术示例
本主题介绍一项传统技术,保留该技术是为了向后兼容现有的应用程序,不建议对新的开发使用该技术。现在应该使用 Windows Communication Foundation (WCF) 来开发分布式应用程序。
此示例演示 RealProxy 类的扩展性。通过扩展 RealProxy,用户代码可获得对将要传送到(或传送自)任何远程对象的消息的访问权。此示例将创建三个可执行文件。ProxyWithReturnMessage.exe 应用程序重写 Invoke 方法,以显示消息数据。ProxyWithCustomCasting.exe 应用程序使用名为 IFaq 和 IBaz 的两个接口来演示自定义强制转换功能。ProxyWiredToHttpChannel.exe 应用程序演示如何使用 Http 通道来截获和转发对 RemotingHello 服务的调用。
注意: |
---|
此示例要求您的计算机上安装了 Internet 信息服务 (IIS)。运行示例应用程序之前,必须在 IIS 中注册 RemotingHello 服务。 |
使用命令提示生成示例
打开命令提示窗口,定位到 CS 子目录。
在命令行中键入 msbuild CustomProxiesCS.sln。
注意: 此示例生成三个控制台应用程序。必须使用命令提示来启动并运行这些应用程序,才能查看相应的输出。
使用 Visual Studio 生成示例
打开 Windows 资源管理器,定位到 CS 子目录。
双击 CustomProxiesCS.sln 的图标,在 Visual Studio 中打开该文件。
在**“生成”菜单上,选择“生成解决方案”**。
在 IIS 中注册服务
将服务编译为 DLL 并将此 DLL 复制到将从中加载该服务的 bin 目录。按照上述步骤使用命令提示或 Visual Studio 生成该示例时,将编译该服务,在 ProxyWiredToHttpChannel 下创建 bin 子目录并将 Hello.dll 复制到该子目录中。
启动 Internet 服务管理器,然后选择服务器节点下的**“默认网站”。在菜单上选择“操作”->“新建”->“虚拟目录”,然后单击“下一步”**继续。
输入 RemotingHello 作为别名,然后按**“下一步”**。
输入服务所在的目录。输入完整路径,但排除步骤 1 中的 DLL 复制到的 bin 目录。
按**“下一步”。接受提供的默认值并再次按“下一步”。按“完成”**。现在已注册了该服务,在“Internet 服务管理器”窗口中“默认网站”列表的下面将出现此服务。
确保注册服务的目录中存在 web.config 文件。此文件描述了您的服务,在客户端尝试通过浏览器或使用端口 80 上的 HTTP 通道的客户端访问您的服务时将自动加载此文件。
运行示例
定位到包含这三个可执行文件之一的目录:
ProxyWiredToHttpChannel.exe
ProxyWithCustomCasting.exe
ProxyWithReturnMessage.exe。
每个可执行文件都位于与控制台应用程序名称相同的目录下的 \bin\Debug 子目录中。
在命令行中键入可执行文件的名称。运行 ProxyWiredToHttpChannel.exe 之前,确保按照上述步骤在 IIS 中注册了 RemotingHello 服务。
另请参见
参考
IChannel
IMessage
IRemotingTypeInfo
MarshalByRefObject
OneWayAttribute
RealProxy
System.Collections
System.Runtime.Remoting
System.Runtime.Remoting.Proxies
System.Runtime.Remoting.Messaging
UnmanagedType
概念
其他资源
生成日期:2010-02-13