我有一个控制台应用程序,希望托管在 Microsoft Azure 上。我设计了一个 Web 表单,供用户提交控制台应用程序运行所需的两个输入。
如何将每个输入获取到控制台应用程序,以便每次有人提交 Web 表单时,我的控制台应用程序都会使用这些输入在后台运行,作为返回,控制台应用程序将它们发送回 .txt 文件中的输出,或者直接返回网页表单吗?
我需要哪些 Microsoft Azure 服务才能完成此任务?
最佳答案
总结评论中的详细信息,一种方法是将控制台应用程序抽象到类库中,以便可以在控制台和 Web 表单应用程序中使用输出 DLL。尝试从 Web 应用程序运行控制台应用程序通常存在安全风险,因为它需要提升操作系统的权限,而操作系统通常最好不要使用。
要在 Web 表单中使用此 DLL,通常需要将该 DLL 添加为对 Web 表单项目的引用。正如您所提到的,由于您不直接使用 Visual Studio,因此您应该能够将 DLL 放入 Web 表单应用程序的“bin”目录中。只要您使用正确的命名空间/声明,您的后台代码就应该可以工作。
从长远来看,如果您的逻辑复杂且耗时,您开始看到等待响应超时,您可以考虑异步消息传递模式,例如 RPC:
- 后面的 Web 表单代码将请求作为仅包含用户输入和相关 ID 的序列化请求提交到出站队列(例如 Azure 中的服务总线)。
- 单独的 Web 应用程序(例如 Azure 中充当辅助角色的云服务)将监视服务总线,然后将结果发布到具有相关 ID 的入站队列上。如果此响应是一个大文件或内容,您可以考虑创建该文件(例如 Azure Blob 存储或 AWS S3,但仅持续很短时间)并仅返回引用该文件而不是文件的响应。
- 网络表单将定期轮询入站队列以获取相关 ID,并为用户提供详细信息。
关于c# - 如何使用 Windows Azure 将 Web 表单的输入接收到我的控制台应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45575433/