当我使用netstat命令时,我需要杀死一个没有列出的进程.下面的命令将找到进程ID 4,它不是我要查找的进程ID.

    $processPID =  $($(netstat -aon | findstr '5000')[0] -split '\s+')[-1]
    Stop-Process $processPID

我知道我需要的过程是在以下结果中.

Get-Process-Name点网络

而且我找不到一种方法来使用get进程来使用端口筛选器.对于DotNet人员的信息,我使用PowerShell中的DotNet CLI命令运行该项目.

在下面的屏幕截图中,您可以看到监听端口的进程的进程ID 5100

enter image description here

推荐答案

感谢马蒂亚斯和塞巴斯蒂安.有了您的宝贵输入,我想出了以下函数来获取进程ID.

    function Get-ProcessByPort {
    param(
        [int]$Port
    )
    $services = netsh http show servicestate
    $positionSession=0
    $countSession=0
    $countProcess=0
    [bool] $takeNextPID=0
    $processId=$null
    foreach ($s in $services){
        if ($takeNextPID -eq 1) {
            $processId=$s
            break
        }
        if ($s -match 'Server session ID') {
            $countSession++
        }
        if ($s -match "HTTP://LOCALHOST:$Port/") {
            $positionSession=$countSession
        }
        if ($s -match 'Process IDs:') {
            $countProcess++
        }
        if ($positionSession -gt 0) {
            if ($countProcess -eq $positionSession) {
                $takeNextPID=1
            }
        }
    }
    if (-not ([string]::IsNullOrEmpty($processId)))
    {
        $processId=$processId.Trim()
    }   
    return $processId
}

Asp.net相关问答推荐

什么是 SNIReadSyncOverAsync,为什么需要很长时间才能完成?

AppendHeader 是否与 AddHeader 完全相同?

ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

解析器错误消息:文件/TestSite/Default.aspx.cs不存在

在程序集中找不到上下文类型

使用 JavaScript 更改 ASP.NET 标签的可见性

将复选框的值传递给 asp.net mvc4 中的控制器操作

Request.Params 和 Request.Form 什么时候不同?

如何配置 ASP.NET Core 1.0 以使用本地 IIS 而不是 IIS Express?

无法确定条件表达式的类型,因为 'string' 和 'System.DBNull' 之间没有隐式转换

会话变量保存在哪里?

测试 Web 表单应用程序 (ASP.NET) 的最佳方法是什么

将查询参数绑定到 ASP.NET Core 中的模型

不同域的登录页面

C# - 将图像输出到响应输出流给出 GDI+ 错误

如何response.write bytearray?

如何使用 ConfigurationManager.AppSettings

将 HTML 字符串转换为图像

IronRuby死了吗?

Unity 中的单例每个调用上下文(Web 请求)