asp.net - 如何集成 ASP.NET 线程模型和 ZeroMQ 套接字?

标签 asp.net multithreading iis-7 zeromq

我正在构建一个 ASP.NET 服务(一个简单的 aspx),它需要对 ZeroMQ REP 节点进行 REQ 调用。

所以我必须使用 REQ/REP 模式,但我无法找出在 ASP.NET 管道中初始化 ZeroMQ 上下文的正确方法。

此外,我可以在不同的 ASP.NET 线程之间共享一个连接吗?如果可以,如何?

编辑 : 经过一番研究,我认为 inproc router在专用线程中应该是要走的路,因为它会处理sincronization。

但更多的问题出现了:

  • 这种inproc节点的另一端应该是DEALER?如果是这样,它应该连接到 REQ 节点吗?或者它应该绑定(bind)到一个 tcp 端口,我应该编写 REP 服务器节点来连接它(后者会有点麻烦,因为我可以让不同的服务器公开服务)?
  • 作为替代方案,在一端构建一个绑定(bind)到 ROUTER 套接字的 inproc 节点并在另一端与 REQ 连接是否正确?如果是这样,我是否应该对节点进行编码,以便它处理每条消息的手动信封,以便能够将响应发送回正确的请求线程?
  • Application_Start 是正确的管道点来初始化处理此类路由器的线程吗?

  • 目前,连接到 REQ 服务器的 ROUTER/DEALER inproc 节点看起来是最好的选择,但我不确定它是否适用于 。连接 来自 DEALER socket 。但这仍然只是一种猜测,可能是完全错误的。

    最佳答案

    zmq_socket manual状态:

    ØMQ sockets are not thread safe. Applications MUST NOT use a socket from multiple threads except after migrating a socket from one thread to another with a "full fence" memory barrier.

    关于asp.net - 如何集成 ASP.NET 线程模型和 ZeroMQ 套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15500357/

    相关文章:

    c# - 如何正确使用依赖项注入(inject)在 Blazor 组件上包含 ASP.NET Core Identity UserManager?

    ASP.NET 返回 HTTP 500 而不是 404

    c - 使用互斥锁锁定对列表对象的所有访问

    iis - IIS 7.0 出现 404 错误

    c# - 如何检查是否加载了 IHttpHandler?

    iis-7 - 带有 IIS 7 的客户端证书

    c# - 包含逗号的查询字符串参数的多个值 C#

    c# - 如何将 Windows 身份验证从 ".aspx"页面传递到 ".ashx"处理程序

    java - 我的代码抛出 java.lang.IllegalMonitorStateException

    c# - 在线程中使用 C# 将字符串添加到 WPF 中的列表框