How to get “Browse” URL for web site in IIS using C#?

前端 未结 4 973
渐次进展
渐次进展 2021-01-17 19:38

Say, I have the \"Site Name\" web site in the IIS. I can access most of its functions via the ServerManager class from my C# code. What I can\'t seem to figure out is how to

4条回答
  •  北恋
    北恋 (楼主)
    2021-01-17 19:49

    JexusManager is now open source, so you can check its implementation of Binding.ToUri method,

    https://github.com/jexuswebserver/Microsoft.Web.Administration/blob/master/Microsoft.Web.Administration/Binding.cs

            internal string ToUri()
            {
                var address = EndPoint.Address.Equals(IPAddress.Any)
                    ? Parent.Parent.Parent.Parent.HostName.ExtractName()
                    : EndPoint.AddressFamily == AddressFamily.InterNetwork
                        ? EndPoint.Address.ToString()
                        : string.Format("[{0}]", EndPoint.Address);
                return IsDefaultPort
                    ? string.Format("{0}://{1}", Protocol, address)
                    : string.Format("{0}://{1}:{2}", Protocol, address, EndPoint.Port);
            }
    

    As Microsoft's MWA does not expose the HostName part, you have to replace that with something equivalent (as you are the one who initialize ServerManager, you should know what is the host name).

提交回复
热议问题