如何在IIS服务器上运行一个简单的服务器进程
本文关键字:服务器 一个 简单 进程 IIS 运行 | 更新日期: 2023-09-27 18:03:34
我不太确定该如何表达这个问题。
我想做的是用c#创建一个简单的服务器类型的应用程序,它只是监听传入的套接字连接,并以我指定的方式处理它们。它可以是一个聊天应用程序或类似的东西,非常简单。
我看了这个例子:http://msdn.microsoft.com/en-us/library/fx6588te.aspx关于异步套接字。
我理解示例中的代码,但我不确定代码将如何执行。具体来说,示例中应用程序的入口点是什么?服务器如何知道启动它呢?
我唯一使用IIS的经验是在web表单中使用c#代码。我明白,web表单的代码是执行时,url指向的位置,然后再次在回发等。
当我不想使用web表单,而只是一个带有单个入口点(类似于java应用程序)的c#类文件的集合时,它对我来说变得模糊。
为清晰而编辑:
我想要做的目标是创建一个应用程序,我可以把它放在我的web主机上,它将不断接受来自客户端应用程序的请求,并以我指定的方式处理它们,然后将信息返回给客户端。我只是不确定如何告诉服务器启动应用程序,因为我只知道web表单。
此外,如果我最初需要将浏览器引导到一个web表单,并按下一个按钮来启动应用程序,这将是很好的。事实上,如果我可以随意启动和停止应用程序,那将是最理想的。还有,我可能用错了术语。我以为IIS服务器就是你们所说的可以运行asp.net应用程序的服务器。我可能大错特错了。
谢谢。
你不能使用IIS来启动windows应用程序,你需要一个windows服务应用程序不断地监听指定的端口,并且该windows服务应用程序需要被安排在系统启动时或在你选择的任何事件启动。而且只要你想让你的应用程序运行,Windows服务应用程序就需要留在内存中。
PS:你的问题确实需要一些修改,但我也是SO的新手,所以我会让可敬的高级用户做他们最擅长的。
编辑:如果你想用IIS模拟windows服务,这里是你最接近的选择,请点击链接了解你需要知道的。
使用ASP模拟Windows服务。网络应用
强制应用程序保持活动
这两个链接将帮助您保持应用程序的活力,并且您可以创建任意数量的类(如您引用的Java风格)来执行您希望它执行的任何任务
听起来您根本不想使用IIS。IIS为您处理侦听,并且是管理请求的"服务"。如果您希望手动侦听传入的连接,那么您将需要以下组件:
-
内置http监听器
看看c# HttpListener类,看看构建一个可以在服务器后台运行的窗口服务的过程。
这不是那么难,但我不确定这是你所需要的。如果你不想使用webforms,你可以有一个web应用程序,直接解析请求到自定义处理程序,我认为这是你真正想要的,并使拥有自己的监听器多余。编辑:关于自定义处理程序的附加信息
下面是一个关于什么是自定义处理程序以及如何使用它的开始:http://support.microsoft.com/kb/308001
我也会看一些来自。net的关于MVC3的初学者文章。MVC是一个框架,它没有webforms所具有的任何缺陷(比如viewstate),它允许你将URL(请求)路由到控制器(类),并返回你想要的任何东西。使用MVC有很多优点,如果你是从java/纯http背景来的,它将比webforms更有意义。
你可以通过搜索"开始使用。net MVC3"来开始,甚至可以从www.asp.net开始寻找初学者资源。
除非你的目标是学习低级TCP通信,编写和配置服务,处理代码更改,编写自己的序列化/请求解析,而不是坚持使用IIS和HTTP可能更容易。
没有必要使用WebForms - WebService (ASP. net)。Net或甚至WCF)或MVC Web API将使您能够实现所需的方法,而无需编写自己的自定义序列化和请求解析基础结构。你甚至可以做长轮询如果/当需要(即SignalR)。
我将从基本的MVC应用程序开始报告JSON结果作为服务器端,因为它仍然会显示编写聊天客户端所涉及的所有问题(持久性,发现其他客户端,快速状态更新),同时允许您专注于通信本身(包括如果需要的话很容易看到所有流量)。