iis 80端口 默认导航首页

本文提供了一个简单程序,能够自动显示IIS当前有多少站点,并显示各站点的名称、端口和路径,方便管理和访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接iis 80端口 默认导航首页 ,

可以不用再记住你每个开发网站的端口了.

自动显示你的iis当前有多少站点

.点击链接就可以直达

这个程序是从我老大那里拿来的.

非常好用

using System;
using System.Collections.Generic;
using System.DirectoryServices;

public partial class _default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        int TotalServerCount = 0;
        DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC");

        foreach (DirectoryEntry child in rootfolder.Children)
        {
            if (child.SchemaClassName == "IIsWebServer")
            {
                TotalServerCount += 1;
            }
        }

        //循环获取所有站点详细属性写入数组中
        Dictionary<int, string> sites = new Dictionary<int, string>();
        Dictionary<int, string> paths = new Dictionary<int, string>();
        int[] arrayServerPort = new int[TotalServerCount];

        string currentServerBindings;//绑定主机头IP端口字符串
        char[] a = ":".ToCharArray();
        string[] currentBingdings = new string[2];

        int i = 0;
        foreach (DirectoryEntry child in rootfolder.Children)
        {
            if (child.SchemaClassName == "IIsWebServer")
            {
                currentServerBindings = child.Properties["ServerBindings"].Value.ToString();
                currentBingdings = currentServerBindings.Split(a);

                sites.Add(int.Parse(currentBingdings[1]), child.Properties["ServerComment"].Value.ToString());

                foreach (DirectoryEntry rootChild in child.Children)
                {
                    if (rootChild.Name.ToString().ToLower() == "root")
                    {
                        if (rootChild.Properties["Path"].Value == null)
                        {
                            paths.Add(int.Parse(currentBingdings[1]), "");
                        }
                        else
                        {
                            paths.Add(int.Parse(currentBingdings[1]), rootChild.Properties["Path"].Value.ToString());
                        }
                    }
                }

                arrayServerPort.SetValue(int.Parse(currentBingdings[1]), i);

                i += 1;
            }
        }

        Reorder(ref arrayServerPort);

        //输出站点信息
        for (i = 0; i < TotalServerCount; i++)
        {
            Response.Write("<span style=\"width:280px;display:block;float:left;\"><a href=\"http://localhost:" + arrayServerPort[i].ToString() + "\">站点名称: " + sites[arrayServerPort[i]] + "</a></span>");
            Response.Write("<span style=\"width:80px;display:block;float:left;\">端口: " + arrayServerPort[i].ToString() + "</span>");
            Response.Write("<span style=\"display:block;float:left;\">路径: " + paths[arrayServerPort[i]] + "</span>"); 
            Response.Write("<br>");
        }
    }

    private void Reorder(ref int[] args)
    {
        int j, temp;
        for (int i = 0; i < args.Length - 1; i++)
        {
            j = i + 1;
        aa:
            if (args[i] > args[j])
            {
                temp = args[i];
                args[i] = args[j];
                args[j] = temp;
                goto aa;
            }
            else
                if (j < args.Length - 1)
                {
                    j++;
                    goto aa;
                }
        }
    }
}


 

### 排查和解决 Windows 系统中 443 和 80 端口被占用的方法 #### 使用 `netsh` 命令查找占用端口的进程 可以通过执行以下命令来查看哪些程序占用了 443 或 80 端口: ```cmd netsh http show servicestate ``` 此命令会显示当前 HTTP 协议的状态以及绑定到这些端口的服务或应用程序的信息[^1]。 #### 利用 `netstat` 命令定位具体 PID 如果需要进一步确认具体的进程 ID (PID),可以运行如下命令: ```cmd netstat -aon | findstr :80 netstat -aon | findstr :443 ``` 上述两条指令分别用于筛选出监听在 80 和 443 端口上的连接及其对应的 PID。接着,可通过任务管理器或者查询系统服务的方式终止该进程[^2]。 #### 特殊情况下的处理方式 当发现 Pid=4 的时候,这通常意味着是 System 进程本身绑定了这两个常用通信端口。由于这是一个核心组件,直接强制关闭可能会引发不稳定甚至蓝屏等问题。因此建议采取更温和的办法——修改 IIS 配置文件或其他相关设置以更改默认使用的端口号;亦或是禁用某些不必要的功能模块比如 World Wide Web Publishing Service(WWW PubSvc)[^3]。 #### 修改注册表解除限制(谨慎操作) 对于高级用户而言,在确保了解风险的前提下也可以考虑调整操作系统内部参数从而允许其他软件接管标准 web 访问路径。打开 regedit.exe 导航至 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP 下寻找 Start 键值项将其数值设为 4 表示手动加载而非自动启动即可达到目的[^5]。 完成以上任意一种措施之后记得重新引导计算机以便使改动生效,并再次验证目标端口是否仍然处于忙碌状态。 ```python import os os.system('taskkill /F /PID {your_pid}') # 替换 {your_pid} 为你实际查得的结果 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值