2011-11-03 37 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