首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET IE BHO远程处理

.NET IE BHO远程处理
EN

Stack Overflow用户
提问于 2009-11-18 18:06:55
回答 1查看 773关注 0票数 1

我有一个IE浏览器助手对象,它是IE8的一个工具栏插件。我还有另一个.NET .EXE应用程序(远程处理客户端),它通过公共接口使用远程处理连接到这个BHO (远程处理服务器)。当我使用服务器组件中使用的相同代码测试.EXE应用程序和临时控制台应用程序之间的通信时,它通信正常,并运行远程方法。

但是,当我尝试与BHO服务器进行通信时,发现"FileNotFoundException“无法加载文件或程序集"xxxx”,其中"xxxx“是包含服务器方法的公共接口程序集。

当我尝试与在the上的安全的BHO服务器通信时,关闭ChannelServices.RegisterChannel(tcpClientChannel,(假);,我得到错误“到远程对象的连接被强制关闭”。

如果我用简单的测试控制台应用程序重新测试它,它可以工作。

我开始相信问题出在BHO实例中远程处理的工作方式上……有没有人在BHO .NET实例中使用过远程处理,我正在使用SPICIE库使用.NET创建BHO。

远程处理接口对象命名空间返回的公共接口程序集{ WWieClassLibrary.WWieCommonClass.IGetHtmlElement WWieRemote : MarshalByRefObject,WWie.CommonClasses { public string GetElementClicked() { return ("Returned from WWieRemote ");}

代码语言:javascript
复制
    public void SetElementClicked(string str)
    {
        MessageBox.Show("SetElement " + str);
    }

}

}

客户端WWieClassLibrary.WWieCommonClass.IGetHtmlElement静态主机tcpClientChannel = TcpChannel();公共静态主机remoteObject;ChannelServices.RegisterChannel(tcpClientChannel,false);remoteObject = (WWieClassLibrary.WWieCommonClass.IGetHtmlElement)Activator.GetObject(typeof(WWieClassLibrary.WWieCommonClass.IGetHtmlElement),“tcp:// TcpChannel tcpClientChannel:9002/TcpChannel”);

使用远程方法调用进行测试

代码语言:javascript
复制
    remoteObject.SetElementClicked("from Client");   

服务器BHO TcpChannel tcpServerChannel =新TcpChannel(9002);TcpChannel tcpServerChannel);TcpChannel "TestWWie",WellKnownObjectMode.Singleton);

EN

回答 1

Stack Overflow用户

发布于 2009-11-19 01:36:51

由于默认情况下IE在保护模式下运行,因此它通常无法与更高完整性的进程进行通信。如果您的url位于intranet区域中,则可以推送禁用intranet区域的保护模式的策略。否则,您可能想要寻找其他选项,如共享内存、命名管道、隐藏的工作窗口和注册消息以及为Vista的UIPI定制的消息过滤器等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1754906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档