2013-04-10 38 views
5

Có thể lấy URL cơ sở của IIS 7 bằng cách sử dụng Microsoft.Web.Administration.ServerManager không?Nhận URL cơ sở của Ứng dụng web của tôi

Thông thường điều này sẽ là:

http://localhost 

nhưng tôi cần để có được nó lập trình.

Nếu tôi không thể sử dụng ServerManager giải pháp thay thế tốt nhất là gì?

Trả lời

14

Bạn có thể sử dụng string baseURL = HttpContext.Current.Request.Url.Host.

+0

@ Joe.Net: Tôi hy vọng điều này là hữu ích –

+0

Vâng, Cảm ơn bạn Một J –

+0

@ Joe.Net: U r chào đón joe. Rất vui khi biết câu trả lời của tôi rất hữu ích. –

13

Đối với những người quan tâm đến việc sử dụng Microsoft.Web.Administration.ServerManager, đây là một số mã. Hãy xem xét rằng một ứng dụng IIS của tôi có nhiều hơn một ràng buộc, dẫn đến nhiều hơn một URL cho mỗi ứng dụng web.

var siteName = "Default Web Site"; 
var appPath = "MyWebApplication"; 

var serverManager = new ServerManager(); 
var site = serverManager.Sites[siteName]; 
appPath = appPath.StartsWith("/") ? appPath : "/" + appPath; 
var app = site.Applications[appPath]; 

var urls = new List<string>(); 

foreach (var binding in site.Bindings) 
{ 
    var sb = new StringBuilder(); 
    sb.Append(binding.Protocol); 
    sb.Append("://"); 
    if (!string.IsNullOrWhiteSpace(binding.Host)) 
    { 
     sb.Append(binding.Host); 
    } 
    else 
    { 
     if (Equals(binding.EndPoint.Address, IPAddress.Any)) 
     { 
      sb.Append("localhost"); 
     } 
     else 
     { 
      sb.Append(binding.EndPoint.Address); 
     } 

     if (binding.EndPoint.Port != 80) 
     { 
      sb.Append(":"); 
      sb.Append(binding.EndPoint.Port); 
     } 
    } 

    sb.Append(app.Path); 
    urls.Add(sb.ToString()); 
} 
+1

Nó chỉ ra rằng đây thực sự không phải là những gì mà OP quan tâm. Bạn có thấy OP đánh dấu câu trả lời 'HttpContext.Current' là câu trả lời được chấp nhận không? –

+4

Đó là lý do tại sao tôi giới thiệu câu trả lời với "cho những người quan tâm ...". Bạn thấy đấy, nhiều người đến đây tìm kiếm một câu trả lời liên quan đến ServerManager, vì vậy tôi nghĩ điều này có thể hữu ích. –

+0

Đó không phải là cách nó hoạt động. Câu trả lời về ServerManager phải là câu trả lời cho _question_ về ServerManager. –

Các vấn đề liên quan