2013-12-16 39 views
0

比方說,我想製作能在一個插座接收插座(未頁面請求)客戶端連接的應用程序,並同時擔任另一插座Web表單,告訴用戶,例如,有多少客戶端使用另一個(Socket)接口進行連接。這隻與我想要做的大致相似,所以不要擔心,如果它似乎無意義!後臺進程窗體

那麼,是不是可以有一個ASP.NET Web窗體應用程序的服務器上運行的另一個線程處理其他事情,而網絡服務器提供的網頁?有沒有推薦的方法來做到這一點,還是需要一點點黑客?

編輯: 別擔心,我切換到MVC 4,現在正在使用啓動線程的App_Start方法。因爲無論線程是否中止,只要它重新啓動,這都是一個合適的修復。

感謝所有幫助反正雖然, hnefatl

+0

你有訪問服務器或這是一個共享服務提供商?你總是可以使用Windows服務或計劃任務來處理這些類型的事情。這是首選方式; ASP.NET並不總是可靠的後臺任務,並且很容易受到會話超時等 –

+0

呀,我正在開發它自己(這只是非常小的,供個人使用真的)。你是什​​麼意思Windows服務?隨之而來的問題是,服務器需要能夠將數據發送到該Socket客戶端是誰放送網頁客戶端輸入。 – hnefatl

+0

您使用的是哪個版本的.NET?更高版本可以自主託管ASP.NET。由於您也可以自主託管WCF(或您自己的套接字服務器代碼),因此這可能是一個解決方案。 –

回答

0

你可以嘗試使用異步功能在.NET 4.5,提到here。基本上,定義了與 「異步」 關鍵字的方法,如:

public async Task DoThis(); 

註冊異步任務:

RegisterAsyncTask(new PageAsyncTask(DoThis)); 

馬克網頁標題爲異步= 「真」

<%@ Page Title="Async" Language="C#" CodeBehind="Page.aspx.cs" 
     Inherits="Whatever" Async="true" %> 
+0

謝謝,我發現我自己的「解決方案」,檢查我的編輯。 – hnefatl