2011-03-20 37 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(); 
         } 
        } 
       };