HttpHandler用于特定端口

时间:2011-03-20 17:04:33

标签: asp.net

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

2 个答案:

答案 0 :(得分:3)

我知道有两种选择:

  1. 正如您所说,创建一个新的Web应用程序,该应用程序必须监听指定URL上的请求。端口。
  2. 绑定网站以收听端口80和其他URL。然后,当您编写处理程序时,您可以查看Request对象以确定URL
  3. 我个人更喜欢第一选择。

答案 1 :(得分: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();
                      }
                  }
              };