Asp.net 如何将访问web应用程序的每个用户与服务分配的单独临时进程相关联?

Asp.net 如何将访问web应用程序的每个用户与服务分配的单独临时进程相关联?,asp.net,web-services,asp.net-mvc-2,windows-services,asyncsocket,Asp.net,Web Services,Asp.net Mvc 2,Windows Services,Asyncsocket,我想使用在IIS上运行的ASP.NET开发一个web应用程序 如果用户提交MAXIMA input命令,则代码隐藏将要求自定义windows服务创建一个新的独立临时进程来执行外部程序集 更准确地说,只有一个windows服务为所有用户提供服务,但每个用户都将与运行外部程序集的不同临时进程相关联 windows服务包含侦听特定端口的单个套接字和用于通信的异步套接字列表。列表中的每个套接字都将与运行外部程序集(用作客户端套接字)的不同临时进程通信 注意:我使用进程而不是应用程序域,因为外部程序集是批

我想使用在IIS上运行的ASP.NET开发一个web应用程序

如果用户提交MAXIMA input命令,则代码隐藏将要求自定义windows服务创建一个新的独立临时进程来执行外部程序集

更准确地说,只有一个windows服务为所有用户提供服务,但每个用户都将与运行外部程序集的不同临时进程相关联

windows服务包含侦听特定端口的单个套接字和用于通信的异步套接字列表。列表中的每个套接字都将与运行外部程序集(用作客户端套接字)的不同临时进程通信

注意:我使用进程而不是应用程序域,因为外部程序集是批处理文件(不是托管程序集)

我的问题是:

  • 如何从代码隐藏调用windows服务
  • 如何将每个用户与不同的临时流程关联
  • 如果有越来越多的用户同时工作,如何提高可伸缩性
  • 如果用户输入的Maxima input命令导致进程长时间运行,那么通知用户进程的明智方法是什么
  • 以下链接为您提供了有关我的项目的更多详细信息:


    提前感谢您。

    您不应该在MVC应用程序中使用codebehind

    与非托管代码交互时的可伸缩性很难实现。唯一明智的方法是分解问题

    • 启动非托管应用程序时,它已经有自己的进程
    • 从web应用程序调用的服务中的多个任务流,是否具有监视功能?你在描述。使用AppFabric托管您的服务,您不必自己编写所有这些内容
    • 关于可伸缩性,当您处理非托管流程时,您必须限制可以同时启动的数量。为了确定特定硬件的最佳配置,需要反复试验
    • 只有在非托管任务的应用程序专门提供的情况下,才能监视该任务的进度
    • 从服务启动任意非托管代码是危险的,因为在默认情况下,启动的应用程序会继承服务(通常是提升的)权限。考虑使用特定的、有限的凭据来启动应用程序而不是默认值。