C# 从asp.net执行控制台应用程序

C# 从asp.net执行控制台应用程序,c#,asp.net,asynchronous,console,C#,Asp.net,Asynchronous,Console,我知道我可以执行过程。启动从web应用程序执行控制台应用程序,但我想了解如何正确设计此项目 经过身份验证的用户可以提交要求执行控制台应用程序的请求,该应用程序执行一些后端工作(可能需要或可能不需要很长时间),并且控制台应用程序的结果需要显示给用户 进程.Start是否在与asp.net进程相同的线程中执行console应用程序?如果是,这是否“锁定”了用户的浏览器?我是否应该异步执行此操作?如果是,如何建议?如何从控制台应用程序返回结果 此外,这种方法是否可以扩展到数百个提交请求的用户 还有回复

我知道我可以执行
过程。启动
从web应用程序执行控制台应用程序,但我想了解如何正确设计此项目

经过身份验证的用户可以提交要求执行控制台应用程序的请求,该应用程序执行一些后端工作(可能需要或可能不需要很长时间),并且控制台应用程序的结果需要显示给用户

进程.Start
是否在与asp.net进程相同的线程中执行console应用程序?如果是,这是否“锁定”了用户的浏览器?我是否应该异步执行此操作?如果是,如何建议?如何从控制台应用程序返回结果

此外,这种方法是否可以扩展到数百个提交请求的用户


还有回复吗?

过程。Start
是一个非阻塞呼叫。您可以使用
进程
对象处理其事件,并从其流中读取或写入数据


如果它是可伸缩的,您可能需要很多功能强大的服务器。这取决于实际的进程。

常见的解决方案是在后台操作队列存储的地方有一个数据库表。因此,当用户提交请求时,会向队列表中添加一条新记录。控制台应用程序定期运行(例如,使用Cron调度),检查数据库中的队列表,在后台执行任务,并将结果写入数据库


这种方法具有很强的可扩展性和广泛的应用。

考虑使用WCF或web服务而不是控制台application@YuriyRozhovetskiy不幸的是,此控制台应用程序已创建,无法转换为web服务