.NET 4.5,64位Win8
我在WCF下运行了两个MSMQ并在Windows激活服务下托管。
- 执行MSMQ:负责调用非托管函数并获得指向IntPtr到4GB数组的指针以及其他有限大小的变量。此数组并不重要,不应阻塞队列,直到将队列传递给数据库并将此队列释放为优先级。将指针传递给Save MSMQ(假设)。
- 保存MSMQ:应该通过网络将阵列保存到数据库,然后从非托管内存中释放它。
醇>
这里的问题是:
- 确保在有害消息和其他队列错误上释放数组。这种情况很容易。
- 传递一个IntPtr交叉app域,这可能是不可能的,正如我记得的那样,从过去的好日子开始,指针值是相对的(并且可以想到这个词偏移,或者我正在混合进程和AppDomains)到app域名和安全性原因.NET可能不允许这样做? 这是可能还是我在做梦,这也是一个跨域问题,还是我的问题有不同的标题?
醇>
N.B。我之前使用过NetPipes通信,但是中间有一个队列,所以NetPipes不是一个好的解决方案。