2011-03-20 38 views
0

我有一个基于ASP.NET MVC框架构建的Web应用程序,它需要一个服务支付模块。对于给定的服务支付提供商,我必须创建一个模块,在特定的URL上侦听特定的端口(不同于80)。达到此目的的最佳方法是什么?我应该创建一个单独的Http Server应用程序来监听这些连接吗?有没有办法在主Web应用程序的上下文中创建一个HttpHandler来处理给定端口的请求?特定端口的HttpHandler

回答

3

我知道的两个选择这样做:

  1. 正如你所说的创建必将侦听指定的URL &端口上的请求一个新的Web应用程序。
  2. 绑定网站以侦听端口80和这个其他URL。然后,当你写你的处理器,你可以看看Request对象确定URL

我个人比较喜欢的首选。

2

在你的PostMapRequestHandler event检查端口。如果它是您想要使用的端口,则将HttpHandler设置为您的自定义处理程序,否则不要执行任何操作。

例如,

 EventHandler WireThisToHttpApplicationPostMapRequestHandler = (sender, args) => 
       { 
        var httpApplication = (HttpApplication) sender; 
        var portString =httpApplication.Request.ServerVariables["SERVER_PORT"]; 
        if (!string.IsNullOrEmpty(portString)) 
        { 
         var port = int.Parse(portString); 
         if (port == 8675309) 
         { 
          httpApplication.Context.Handler = new TommyTutoneHttpHandler(); 
         } 
        } 
       };