从网页访问控制台应用程序
Accessing a console application from web page
我最近创建了两个 C# 控制台应用程序。第一个将一堆命令输出转换为 XML,第二个使用模板将 XML 转换为 Word 文档。
我想知道如何将它放到网上,即拥有一个可以上传命令输出的网页,执行两步转换,最后提供可供下载的 Word 文档。
应该在 ASP.NET 中创建网页还是有其他(更好)的选择?我是否需要以其他格式重写控制台应用程序?
这个问题相当广泛,有足够的空间进行新颖的解释,但这里有一个简短的高级演练,说明实现建议的结果可能需要发生什么(与语言无关):
- 获取允许用户启动自己的机器(即 AWS)的托管服务提供商。
- 启动一台与有问题的 "console" 程序兼容的机器。
- 在计算机上安装 "console" 个程序。
- 在机器上安装编程语言(即 Node.js、PHP、ASP.NET,甚至 C# 也可以)。
- 在计算机上安装网络服务器(即 NGINX、Apache),将其配置为服务 public 请求并使用所选语言 运行。
- 根据服务器请求,从所选语言中执行适当的命令。语言通常带有
exec
方法(即在 node.js 中:require('child_process').exec(command,options,callback)
)
- 获取所述命令的结果并将其发送回客户端。或者(对于下载),将结果写入系统上 public 仅可用于 Internet 的路径,并将用户重定向到该 url(可能需要额外配置以确保浏览器下载文件而不是仅仅提供它)。
以上步骤应该让您非常接近您想要的结果。至于你的问题:
Should the web page be created in ASP.NET or are there other (better)
options?
"better" 选项是您目前感觉最舒服的任何选项,您以后可以随时通过合理的努力更改它(假设您的 "console" 应用程序不是毫无戒心的独角兽)。
Do I need to rewrite the console applications in some other format?
否,除非您有充分的理由这样做(即多环境兼容性)。您还可以重写以显着简化(即绕过使用 CLI 并在 C# 中执行所有操作)。
尝试思考这些高级步骤,开始着手实施,并在遇到困难时 post 在 Whosebug 上提出更具体的问题。
希望对您有所帮助!
我最近创建了两个 C# 控制台应用程序。第一个将一堆命令输出转换为 XML,第二个使用模板将 XML 转换为 Word 文档。
我想知道如何将它放到网上,即拥有一个可以上传命令输出的网页,执行两步转换,最后提供可供下载的 Word 文档。
应该在 ASP.NET 中创建网页还是有其他(更好)的选择?我是否需要以其他格式重写控制台应用程序?
这个问题相当广泛,有足够的空间进行新颖的解释,但这里有一个简短的高级演练,说明实现建议的结果可能需要发生什么(与语言无关):
- 获取允许用户启动自己的机器(即 AWS)的托管服务提供商。
- 启动一台与有问题的 "console" 程序兼容的机器。
- 在计算机上安装 "console" 个程序。
- 在机器上安装编程语言(即 Node.js、PHP、ASP.NET,甚至 C# 也可以)。
- 在计算机上安装网络服务器(即 NGINX、Apache),将其配置为服务 public 请求并使用所选语言 运行。
- 根据服务器请求,从所选语言中执行适当的命令。语言通常带有
exec
方法(即在 node.js 中:require('child_process').exec(command,options,callback)
) - 获取所述命令的结果并将其发送回客户端。或者(对于下载),将结果写入系统上 public 仅可用于 Internet 的路径,并将用户重定向到该 url(可能需要额外配置以确保浏览器下载文件而不是仅仅提供它)。
以上步骤应该让您非常接近您想要的结果。至于你的问题:
Should the web page be created in ASP.NET or are there other (better) options?
"better" 选项是您目前感觉最舒服的任何选项,您以后可以随时通过合理的努力更改它(假设您的 "console" 应用程序不是毫无戒心的独角兽)。
Do I need to rewrite the console applications in some other format?
否,除非您有充分的理由这样做(即多环境兼容性)。您还可以重写以显着简化(即绕过使用 CLI 并在 C# 中执行所有操作)。
尝试思考这些高级步骤,开始着手实施,并在遇到困难时 post 在 Whosebug 上提出更具体的问题。
希望对您有所帮助!