【问题标题】:Passing a socket to a new AppDomain将套接字传递给新的 AppDomain
【发布时间】:2011-08-15 15:42:18
【问题描述】:

我正在将客户端/服务器应用程序移植到 .NET。服务器的当前 C 版本有一个用于侦听套接字连接的进程(Windows 服务)的可执行文件。当侦听器接受套接字连接时,它会生成一个新进程来处理该连接。处理程序应用程序是一个单独的可执行文件。

在此应用程序的 .NET 版本中,我想要一个可执行文件/进程。侦听器应该为每个连接创建一个新的 AppDomain(以隔离分配给每个客户端的“工作进程”)。我应该如何将套接字从侦听器应用程序域传递到工作应用程序域?

谢谢!

【问题讨论】:

  • 根据隔离,您可能能够在各自的域上使用 GetData 和 SetData,但您可能必须跨域编组对象。你有没有尝试过?
  • 我想我刚刚找到了自己问题的答案。即使我没有将套接字传递给单独的进程,也可以使用 DuplicateAndClose 方法。侦听器可以只传入它自己的进程 ID。 link
  • 酷,希望它能正常工作;如果是,那么您应该回答您自己的问题并接受它。

标签: c# sockets appdomain


【解决方案1】:

我想我刚刚找到了自己问题的答案。即使我没有将套接字传递给单独的进程,也可以使用 DuplicateAndClose 方法。侦听器只需将自己的进程 ID 传递给 DuplicateAndClose。

这里描述了解决方案: http://blogs.msdn.com/b/malarch/archive/2005/12/14/503884.aspx

如果您想将套接字传递给单独的进程,这也适用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-04
    • 2019-07-04
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2014-05-02
    相关资源
    最近更新 更多