为什么Windows有时会开始使用我用于IIS Express的端口?

时间:2017-11-15 11:47:48

标签: asp.net-core windows-7 visual-studio-2017 iis-express

有时当我尝试从visual studio运行IIS Express时,我收到此消息:

enter image description here

如果我检查哪个进程正在使用该端口,我现在就得到了PID 4,这是我计算机上的System进程:

D:\>netstat -a -n -o | find "15134"
  TCP    0.0.0.0:15134          0.0.0.0:0              LISTENING       4
  TCP    [::]:15134             [::]:0                 LISTENING       4
  TCP    [::1]:15134            [::1]:50081            ESTABLISHED     4
  TCP    [::1]:50081            [::1]:15134            ESTABLISHED     7676

D:\>tasklist

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0        304 K

我连接到Telnet上的端口,这是响应(我只输入随机字母,而不是有效的HTTP请求):

HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 15 Nov 2017 11:41:09 GMT
Connection: close
Content-Length: 326

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/str
ict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Verb</h2>
<hr><p>HTTP Error 400. The request verb is invalid.</p>
</BODY></HTML>

如何防止这种情况发生?如何处理这个问题,缺少更改开发端口或重新启动PC?

1 个答案:

答案 0 :(得分:0)

PID 4和Server: Microsoft-HTTPAPI/2.0一起表示该端口正被钩住http.sys驱动程序的东西使用。

因此,重启机器很少是一种解决方案。更改为另一个端口是一个更实际的选择。

请注意,“端口正在使用”问题可能有其他原因,因此这个答案并不试图涵盖所有这些问题。