如何在c#中从IIS Express获得应用程序端口



我正在尝试从IIS Express获得应用程序运行的端口。

到目前为止,我尝试了这两种方法:
//first
var iisExpress = new DirectoryEntry("IIS://localhost/W3SVC/AppPools").Children;
//second
var mgr = new ServerManager().Sites;

但是两者都只给我DefaultAppPoolDefault 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;

相关内容

最新更新