从“ncalrpc”切换到“ncacn_np”可能出现的问题

Posted

技术标签:

【中文标题】从“ncalrpc”切换到“ncacn_np”可能出现的问题【英文标题】:Possible problems switching from "ncalrpc" to "ncacn_np" 【发布时间】:2009-05-07 13:09:40 【问题描述】:

我有一个使用 RPC 进行进程间通信的应用程序。事实证明,在 Vista 上不允许使用与“ncalrpc”协议序列一起使用的同步 RPC 管道。我想切换到“ncacn_np”并使用带有 RPC_IF_ALLOW_LOCAL_ONLY 标志的 RpcServerRegisterEpEx()。

有人尝试过吗?这种过渡是否存在任何可能的问题?

【问题讨论】:

【参考方案1】:

您已看到有关标志使用的以下信息:

...When this interface flag is registered, the RPC runtime rejects calls made by remote clients. All local calls using ncadg_* and ncacn_* protocol sequences are also rejected, with the exception of ncacn_np. RPC allows ncacn_NP calls only if the call does not come from SRV. Calls from ncalrpc are always processed...

本地 RPC 真正使用 LPC(Microsoft Windows Internals 4 ed,第 802 页): 本地 RPC 可用于位于同一系统上的两个进程之间的通信,并且 RPC 运行时 DLL 使用内核模式下的本地过程调用 (LPC) 工具作为本地网络 API。

[已编辑] 更多帮助How to troubleshoot connectivity issues that are caused by RPC client protocol registry entries

【讨论】:

你的意思是如果我指定“ncacn_np”和“仅本地”标志,它仍将使用“ncalrpc”吗?顺便说一句,这里的“SRV”是什么? SRV 应该是 RFC2782 (ietf.org/rfc/rfc2782.txt) 中引用的服务的位置 完全对 SRV 感到困惑。打开了一个新问题***.com/questions/851294/…

以上是关于从“ncalrpc”切换到“ncacn_np”可能出现的问题的主要内容,如果未能解决你的问题,请参考以下文章

你能确定哪些进程在外部使用 ncalrpc RPC 端点吗?

从视图 1 切换到蓝牙设置..不可能?

尝试将按钮从关闭切换到打开然后再返回可能是啥问题......?

在 ECL IDE 中从本地切换到雷神集群

无法从 UILabel 切换到 ViewController

尝试从 SQLite 切换到 PostgreSQL