是否存在与RPC上下文句柄等效的WCF?

时间:2009-06-03 18:14:41

标签: c++ wcf rpc intptr handles

我正在更新旧的C ++服务以使用WCF而不是RPC,并且在发送和接收句柄时使用什么类型(HANDLE,void * ..等)存在问题。在更新的服务中,我目前使用IntPtr,但是当从64位版本的服务转换为32位版本时,这不起作用。 IntPtr无法反序列化,因为在内部它只是一个空*,根据您运行的环境而不同。

这解决了这个问题,因为RPC基础结构实际上从未发送过句柄值,而是一个引用句柄的GUID。以下文章描述了此过程:

See Context handles section

我正在寻找与此功能等效的WCF。我可以在服务上自己编写类似的逻辑,或者甚至只是将IntPtr更改为Int64,但我希望有类似于RPC的方式。

1 个答案:

答案 0 :(得分:1)

我建议你重新设计这样的代码。传递句柄的原因可能不再有效。

另外,我假设您在本机客户端和服务器之间传递句柄,但是使用WCF,您将使用托管代码。一方的托管代码与另一方的“句柄”有什么关系呢?例如,将文件路径发送到另一端并让另一方打开文件,而不是传递文件句柄可能更有意义。

此代码可能是在RPC不是旧技术的时候创建的。这表明其余部分也采用了当代RPC技术。整个应用程序很可能需要为现代世界重新设计。在重新设计中,您可能会使用WCF执行当前使用RPC完成的事情 kind ;但它不会是一对一的比赛。