繁体   English   中英

如何在IIS服务器上运行简单的服务器进程

[英]How do I run a simple server process on an IIS server

我不太确定如何表达这个问题。

我想做的是用C#创建一个简单的服务器类型应用程序,该应用程序仅侦听传入的套接字连接并按照我指定的方式处理它们。 它可以是聊天应用程序或类似的东西,非常简单。

我看了一个例子: http : //msdn.microsoft.com/en-us/library/fx6588te.aspx关于异步套接字。

我理解示例中的代码,但不确定如何执行代码。 具体来说,示例中应用程序的入口是什么? 服务器将如何知道如何启动它?

我对IIS的唯一经验是使用C#代码隐藏的Web表单。 我知道网址指向的位置会执行Web表单的代码,然后在回发时再次执行。

当我不想使用Web表单,而只是使用具有单个入口点的C#类文件的集合时(对Java应用程序来说),这对我来说就很模糊。

为清楚起见进行编辑:

我想做的目标是创建一个可以放在我的Web主机上的应用程序,该应用程序将不断接受来自客户端应用程序的请求,并按照我指定的方式处理它们,然后将信息返回给客户端。 我只是不确定如何告诉服务器启动应用程序,因为我只了解Web表单。
另外,如果我需要首先将浏览器定向到Web表单,例如按一个按钮来启动应用程序,那也很好。 实际上,如果我可以随意启动和停止应用程序,那将是理想的选择。 另外,我可能使用了错误的术语。 我以为IIS服务器就是您所说的可以运行asp.net应用程序的服务器。 我对此可能是非常错误的。

谢谢。

您不能使用IIS来启动Windows应用程序,您需要一个Windows Service应用程序来不断侦听指定的端口,并且需要安排Windows Service应用程序在系统启动或您选择的任何事件下启动。 并且Windows服务应用程序需要保留在内存中,只要您希望您的应用程序能够运行。

PS:您的问题确实需要进行一些编辑,但是我也是SO的新手,所以我会让受尊敬的高级用户来做他们最擅长的事情。

编辑:如果您想使用IIS模拟Windows服务,而不是这是您最近的选择,请点击链接以了解您需要知道的内容。

使用ASP.NET App模拟Windows服务

强制您的应用程序继续运行

这两个链接将帮助您保持应用程序和bamm的生命力,您可以创建任意数量的类(引用的Java样式)来执行希望其执行的任何任务

在我看来,您根本不想使用IIS。 IIS为您处理侦听,它是管理请求的“服务”。 如果要手动侦听传入的连接,则将需要以下组件:

  1. 正在运行的Windows服务。

  2. 内置了一个HTTP侦听器。

看一下C#HttpListener类,看一下构建可在服务器后台运行的窗口服务的过程。

这并不困难,但是我不确定这就是您所需要的。 如果您不想使用Web表单,则可以使用一个Web应用程序将请求直接解析为自定义处理程序,而我认为这正是您真正要查找的内容,并且使您自己的侦听器过大了。

编辑:有关自定义处理程序的其他信息

这是一个关于自定义处理程序的含义以及使用方法的开始: http : //support.microsoft.com/kb/308001

我还将看看.net上有关MVC3的一些初学者文章。 MVC是一个框架,它没有webforms具有的任何绒毛(例如viewstate),并且允许您将URL(请求)路由到Controller(类)并返回几乎任何您想要的东西。 使用MVC有很多优点,如果您来自Java /纯HTTP背景,那么它比Webforms有意义得多。

您可以搜索“ .net MVC3入门”,甚至从www.asp.net开始获取初学者资源,从而开始使用它。

除非您的目标是学习底层TCP通信,编写和配置服务,处理代码更改,编写自己的序列化/请求解析,否则比坚持IIS和HTTP可能更简单。

无需使用WebForms-WebService(ASP.Net甚至WCF)或MVC Web API将使您能够实现所需的方法,而无需编写自己的自定义序列化和请求解析基础结构。 您甚至可以在需要时进行长轮询(即SignalR )。

我将从基本的MVC应用程序作为服务器端报告JSON结果开始,因为它仍将显示编写聊天客户端所涉及的所有问题(持久性,发现其他客户端,快速更新状态),同时允许您专注于通信本身(包括轻松查看)所有流量(如果需要)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM