簡體   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