gpt4 book ai didi

asp.net - 如何在iis应用程序范围内部署套接字服务器

转载 作者:行者123 更新时间:2023-12-03 12:05:12 25 4
gpt4 key购买 nike

我正在实现一个ASP.NET应用程序,该应用程序需要处理常规的http请求,但是响应需要我需要从提供程序中获取的数据,这些提供程序是通过套接字提供其数据的可执行文件。我的实现计划是:

1)在Application_Start中,启动一个新的线程,该线程启动一个套接字服务器
2)在Session_Start中,启动特定于 session 的进程,该进程最终将连接到套接字服务器,然后从那里执行Monitor.Wait,等待对特定于 session 的锁对象的存储,该对象已通过Session键存储在Application.Contents
3)当套接字服务器看到新连接时,使数据可用于适当的 session 目录,并在特定于 session 的锁定对象上执行Monitor.Pulse

在IIS中这在技术上可行吗?这个概念可以用作稳定的系统吗?

在回答之前,请记住我不是在问“这是推荐的方法”,我知道不是,如果我可以选择从头开始编写此系统,我会做不同的事情。我也无法更改程序使用套接字进行通信的事实。

最佳答案

考虑到约束条件,这种方法很有意义。

当要将状态保持在Web应用程序中时,IIS工作进程的关闭和回收始终是麻烦的问题。请注意,由于多种原因,您的工作进程几乎可以随时回收。其中某些原因是不可避免的:服务器重新启动,应用程序部署,导致进程崩溃的错误。因此,您需要仔细考虑在这些情况下会发生什么:在子进程仍然运行时,所有 session 都将丢失。建议的解决方案:将子级添加到Windows Job Object中,并将作业配置为在父级退出时被杀死。

使用重叠的IIS工作程序回收,您可以同时运行两个正常工作的工作程序。您必须应对这种可能性。

考虑子进程立即崩溃的可能性。它永远不会建立连接。确保您的应用不会永远等待连接挂起。

关于asp.net - 如何在iis应用程序范围内部署套接字服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25266656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com