2011-11-03 36 views
1

我是web應用程序領域的新手,我想知道如何部署網頁並將其公開給特定的參與者。我有一個應用程序從另一個應用程序接收短信。我需要爲其他應用程序提供一個網頁,以便將消息發送到我的應用程序。接收Web請求和處理

我基本上想要公開MessageReceive.aspx頁面並接收下面的請求。我知道如何處理查詢字符串,但不知道如何將網頁公開到互聯網上的第三方應用程序?

http://www.Mysite.com.au/MessageReceive.aspx?ORIGINATOR=61412345678&RECIPIENT=1987654&MESSAGE_TEXT=Hello%20There!

我需要部署 「MessageReceive.aspx」 頁面上的IIS Web應用程序?如果可以,請給我一個例子嗎?

在windows服務中如何使用HttpListener類?這是否有能力做到這一點?

謝謝!

回答

1

HttpListener類確實能夠託管任何類型的應用程序(如Windows桌面應用程序,Windows服務,控制檯應用程序等)內的端點。以一次一個請求的串行方式使用HttpListener可以被處理的非常簡單,但是使用它來提供任何數量的併發可能會很快變得非常複雜。

如果您希望在Windows服務中託管串行端點,HttpListener絕對是最快捷的方法。所有這真的需要的是這樣的:

// To start: 
var listener = new HttpListener("http://www.mysite.com.au/message/"); 
listener.Start(); 

// To stop: 
listener.Stop(); 
listener.Close(); 

// In background thread: 
while (listener.IsListening) 
{ 
    var context = listener.GetContext(); // Will block until a request is received 
    // TOD: Use the context variable (HttpListenerContext type) to get query string parameters and/or the request stream, process data, and configure a response 
} 

這樣一個簡單的程序只能一次處理一個請求,但是HttpListener可以排隊相當數量的同時請求。如果你不打算用你的服務來處理高負荷,那應該就足夠了。如果您需要處理高負載並需要併發請求處理,則需要使用BeginGetContext/EndGetContext方法和異步編程。開發人員負擔處理併發編程,節流,安全關閉等所有複雜性(應該指出的是,如果在HttpListener被關閉時調用EndGetContext,則傾向於拋出,這是因爲ThreadPool負責執行異步調用的回調處理程序。)

+0

謝謝您的回覆。我是否還需要在IIS上創建和部署網頁? – user1026857