我正在尝试从IIS Express获得应用程序运行的端口。
到目前为止,我尝试了这两种方法://first
var iisExpress = new DirectoryEntry("IIS://localhost/W3SVC/AppPools").Children;
//second
var mgr = new ServerManager().Sites;
但是两者都只给我DefaultAppPool
和Default Web App
,而我需要的是我在Visual Studio本地运行的应用程序。
这将输出在IIS上运行的所有网站的名称和端口。
var serverManager = new ServerManager();
foreach (Site site in serverManager.Sites)
{
Console.WriteLine(site.Name);
Console.WriteLine(site.Bindings[0].EndPoint.Port);
}
如果你想保存一个特定网站的端口(例如:MyWebsite)在一个变量上,你可以这样做:
var serverManager = new ServerManager();
var mySite = serverManager.Sites.FirstOrDefault(s => s.Name.Contains("MyWebsite"));
int myPort = mySite?.Bindings[0].EndPoint.Port ?? 0;