在IIS服务器上发布C#控制台应用程序

3

是否可以在IIS服务器上部署控制台C#应用程序。 我有一个运行在一台机器上的.exe文件,它从命名管道获取数据,我的c#应用程序从管道中取出这些数据,并使用TCP套接字将其发送到运行的Web应用程序,我想知道是否可以部署我的C#控制台应用程序到Web服务器上? 我刚开始学习ASP.net和C#。


abjpai,请澄清您想在哪里运行您的EXE。并且可能要评论现有答案,因为“在哪里运行exe”的至少两个选项已经涵盖。 - Alexei Levenkov
2个回答

2
您可以在IIS服务器上托管exe文件,但是部署C#控制台应用程序并不是常见做法,原因如下:
  1. 这样一来,您无法确定客户端机器上是否安装了适当的.NET Framework。因此,控制台应用程序可能甚至无法启动。
  2. Web浏览器可以简单地阻止下载。
  3. 即使exe文件被下载,除非用户在本地启动它,否则它不会自动运行。
微软推荐的方法是使用ClickOnce部署客户端应用程序。
您可以将ClickOnce安装程序托管在IIS端。例如,Microsoft CodePlex就为其开源项目使用这种部署方式。
参考链接:http://msdn.microsoft.com/en-us/library/t71a733d%28v=vs.80%29.aspxhttp://codeplex.codeplex.com/wikipage?title=ClickOnce

感谢您的回复。我将解释我的情况。1. 我有一个exe从外部设备获取实时数据并将其放入命名管道中(exe在服务器上运行)2. 我应该在服务器上运行脚本,从命名管道中获取此数据,并使用TCP套接字将其发送到客户端(目前我有一个C#控制台应用程序来执行此操作)3. 客户端ASP代码,从tcp套接字获取数据,并实时显示在网页上。我的疑问是如何在Web服务器上运行C#代码(第2点)? - Arpit Bajpai
由于它不需要任何用户参与,因此您可以将点2安全地制作为Windows服务应用程序,而不是普通的控制台应用程序。通过这种方式,该服务始终在后台运行(通过命名管道/TCP进行通信),ASP.NET网站可以通过TCP消耗其数据,就像您所期望的那样。然后就不再需要ClickOnce了。 - Lex Li
我的问题可能很蠢?但我从未使用过Windows服务应用程序...这个Windows服务应用程序(它将使用C#编写)将在Web服务器上运行? - Arpit Bajpai
你可以在VS中创建一个Windows服务应用程序,并将其安装在Web服务器上,http://msdn.microsoft.com/en-us/library/zt39148a%28v=vs.80%29.aspx - Lex Li

0

不可以,IIS只能用于托管网站或Web应用程序。你不能在IIS中托管控制台应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接