Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在两个AppDomain之间传递非托管指针(通过间接调用)_C#_Wcf_Marshalling_Msmq_Appdomain - Fatal编程技术网

C# 在两个AppDomain之间传递非托管指针(通过间接调用)

C# 在两个AppDomain之间传递非托管指针(通过间接调用),c#,wcf,marshalling,msmq,appdomain,C#,Wcf,Marshalling,Msmq,Appdomain,.NET 4.5,64位Win8 我有两个MSMQ在WCF下运行,在Windows激活服务下托管 执行MSMQ:除了其他大小有限的变量外,还负责调用非托管函数并获取指向4GB数组的指针IntPtr。这个数组没有那么重要,不应该阻塞队列,直到它被传递到数据库,并且优先考虑让这个队列空闲。将指针传递到保存MSMQ(假设) Save-MSMQ:应通过网络将阵列保存到数据库,然后从非托管内存中解除分配 这里的问题是: 确保在有毒消息和其他队列错误上取消分配阵列。这个案子很简单 在应用程序域之间传递Int

.NET 4.5,64位Win8

我有两个MSMQ在WCF下运行,在Windows激活服务下托管

  • 执行MSMQ:除了其他大小有限的变量外,还负责调用非托管函数并获取指向4GB数组的指针IntPtr。这个数组没有那么重要,不应该阻塞队列,直到它被传递到数据库,并且优先考虑让这个队列空闲。将指针传递到保存MSMQ(假设)
  • Save-MSMQ:应通过网络将阵列保存到数据库,然后从非托管内存中解除分配
  • 这里的问题是:

  • 确保在有毒消息和其他队列错误上取消分配阵列。这个案子很简单
  • 在应用程序域之间传递IntPtr可能是不可能的,正如我回忆的那样,在过去的好日子里,指针值与应用程序域是相对的(我想到了“偏移”一词,或者可能我混合了进程和应用程序域),出于安全原因。NET可能不允许这样做这是可能的还是我在做梦,这是一个跨域问题还是我的问题有不同的标题