无法在IIS中启动站点(由另一个进程使用)

时间:2013-01-19 04:28:54

标签: asp.net iis

当我尝试在IIS中启动一个站点时,它说:

  

该进程无法访问该文件,因为它由另一个进程使用

我在谷歌搜索并发现另一个网站可能一直在使用端口80,但在MyIIS中,我看到只有这个网站使用的是端口80.还有什么可以使用端口80,还是涉及到另一个问题?

10 个答案:

答案 0 :(得分:172)

在命令提示符中使用netstat -aonnetstat -aon | findstr 0.0:80进行检查,以查看哪个进程ID LISTENING to port:80 ,然后在<中查看进程ID(PID) strong>任务管理器 view-&gt;选择列 - &gt;进程ID 已选中。结束该过程,重新启动IIS,您就完成了。 (注意:如果您安装了 Skype ,请先尝试退出该流程。

在现代任务管理器中,您需要转到详细信息标签以搜索PID。或者,如评论中 @Nikita G 所述,您可以使用此命令从命令提示符中查找任务:

tasklist /FI "PID eq 123"

注意:使用从第一个命令返回的PID更改123

答案 1 :(得分:35)

这种情况正在发生,因为不同的进程正在使用端口80,它可能是您的PC上的聊天应用程序,如Skype。

首先,将80的默认网站端口更改为某个未使用的端口(例如8087)。要实现此目的,请右键单击该应用程序,然后单击“编辑绑定”。

enter image description here

enter image description here

此端口更改后再次重启。 现在,您可以确定阻止IIS端口80的进程。要检查此操作,请使用netstat命令,该命令显示端口的详细信息以及进程ID。

答案 2 :(得分:25)

退出Skype并重试。我遇到了同样的问题,我刚刚退出Skype,然后重置我的IIS。它对我有用。

答案 3 :(得分:9)

您还可以运行此命令以找出正在使用该端口的应用程序或服务,然后在任务管理器中对其进行跟踪(前提是它不是Web部署代理服务)。

netstat -o -n -a | findstr 0.0:80

然后打开任务管理器,转到进程,单击“显示所有用户的进程”复选框,然后单击“查看”菜单并转到“列”,添加PID列。

将netstat命令中的进程ID与任务管理器中的PID匹配,您将找到使用该端口的服务或应用程序。

答案 4 :(得分:2)

正如其他人所说,其他东西可能正在使用端口80或443.它是我的VMWare工作站服务器,但请查看有关如何使用netstat的其他答案。

答案 5 :(得分:1)

我认为此链接可以很好地解释和解决此问题http://support.microsoft.com/KB/890015

大部分时间;它是由以下两个原因之一引起的: 1)端口80被其他东西使用,并且如其他人所建议的那样,您可以使用netstat -o -n -a | findstr 0.0:80来查看是否是这种情况。如果是,则从任务管理器中杀死该进程(从所有用户勾选显示进程)

2)如果未使用端口80,则第二个原因可能是HTTP-&gt;参数的注册表项中的ListenOnlyList字段中的无效IP地址。如果您按照链接手动设置密钥,或者实际上您可以使用(xp和server 2003)httpcfg delete iplisten -i ipaddress删除无效的IP地址。 编辑ipaddress后,必须重新启动http!

答案 6 :(得分:0)

就我而言,正在运行并使用端口80的是“Sync Share Service”(SyncShareSvc)。 然而,netstat显示80是免费的。我可以让该网站在另一个端口上运行,但不是80.如果我添加了主机名,IIS将允许我启动该站点,但是当浏览到localhost(或任何主机名我)时,我会收到提示进行摘要式身份验证添加)。 IIS中只启用了匿名和表单身份验证...

我还发现,在停止IIS后,http://localhost仍然提示我进行摘要式身份验证。

解决方案 - 在我的情况下 - 是删除文件和存储服务&gt;文件和iSCSI服务&gt; 安装的服务中的“工作文件夹(需要重新启动)。

删除“工作文件夹”服务并重新启动后,IIS按预期工作。

答案 7 :(得分:0)

我的案例是在安装RD Web Access之后,原始的默认网站无法启动。删除RD Web访问角色仍然相同。删除端口443绑定解决了这个问题。

答案 8 :(得分:0)

大多数情况下,Web开发人员发生这种情况是apache的原因,所以如果你从apache转到配置文件!打开它并用ctrl + f搜索到80并将你看到的IP改为8080,并将那里的句子改为80到8080,你需要在你的xampp或你当前正在使用的程序中设置

希望我能帮助你们。

答案 9 :(得分:0)

为了获取更多有意义的信息,一种方法是在发布netstat时也获取所有权信息,以便您了解使用80(默认的http绑定)还是443(如果定义了https绑定)的进程。 ):

 netstat -ab

在我的情况下,罪魁祸首是vmware:

  

TCP 0.0.0.0:443 ComputerName:0 LISTENING
  [vmware-hostd.exe]

可以将

netstat输送到find中以搜索端口80或443(例如find ":443"),但是这些特殊的活动连接将在列表的开头显示,因为它们很容易看到。