【发布时间】:2010-10-31 19:07:41
【问题描述】:
我有一个用 C# 编写的 Internet Explorer 加载项,它通过 WCF 命名管道与 .NET 桌面应用程序通信。桌面应用程序为 netNamedPipeBinding 创建 ServiceHost,并且 IE 加载项的每个实例都创建一个 ChannelFactory 来与应用程序通信。在 Windows XP 下一切正常,但在 Windows 7 中 IE 的保护模式下会抛出异常。
System.ServiceModel.CommunicationException:无法连接到端点“net.pipe://localhost/MyApp.MyID”。 ---> System.IO.PipeException:'\.\pipe...guid...' 存在管道端点,但连接失败:访问被拒绝。 (5, 0x5)
在保护模式下运行插件是我必须支持的方案。我的理解是,如果我降低命名管道的完整性级别,那么我的 IE 插件将被允许通过它进行对话。我的问题是如何做到这一点。我有使用 WCF 的设置,并且希望保持这种状态。我可以让 WCF 创建具有较低完整性级别的命名管道吗?我要编写什么代码来实现这一点?
【问题讨论】:
标签: c# wcf named-pipes bho protected-mode