当我配置 IIS 在端口 1414 上运行网站时,出现以下错误:
--------------------------- Internet 信息服务 (IIS) 管理器
--------------------------- 该进程无法访问该文件,因为它正在被另一个进程使用。 (来自 HRESULT 的异常:0x80070020)
但按netstat
该端口尚未使用。
完全脱离IIS,我编写了一个测试程序(只是为了打开端口并进行测试):
TcpListener tcpListener;
tcpListener = new TcpListener(IPAddress.Any, port);
try
{
tcpListener.Start();
Console.WriteLine("Press \"q\" key to quit.");
ConsoleKeyInfo key;
do
{
key = Console.ReadKey();
} while (key.KeyChar != 'q');
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
tcpListener.Stop();
结果出现异常并出现以下ex.Message:
尝试以访问权限不允许的方式访问套接字
端口可用,但其“访问权限”不允许我访问。多次重启后,此问题仍然存在。
据我所知,该端口未被保留或使用,尽管 IIS 表示该端口正在使用,但 netstat 和我的测试程序却表示未使用,并且我的测试程序收到错误,提示我无权访问该端口。测试程序运行速度提升。IIS 站点正在运行 MQSeries,但由于此问题,MQ 侦听器也无法在端口 1414 上启动。快速搜索我的注册表后,没有发现任何与端口 1414 相关的内容。
什么是套接字访问权限以及如何更正我的权限以允许访问?
更新:端口 1414 的 netstat 输出。
C:\Windows\system32>netstat -ban|findstr 1414
C:\Windows\system32>
答案1
根据 IBM 文档,mq 默认为 1414,因此您无法让网站和 mq 使用相同的端口。(除非我误解了您的问题。)
答案2
出现上述错误是因为未将默认端口 8080 分配给系统。因此 IIS 管理器下的默认网站无法启动。为了解决上述错误,我按照以下步骤操作,这对我很有效。
步骤1 - 转到运行,输入cmd,将出现命令提示符。
第 2 步 - 我们需要找到哪个进程正在使用默认端口 8080。要找到它,请在命令提示符中输入以下命令。Netstat -ano
步骤 3 - 根据上图,端口 8080 正在由进程 3152 使用。现在我们需要找出为进程 ID 3152 分配了哪个应用程序。输入tasklist /fi “PID eq 3152”
命令提示符并查看结果。
步骤 4 - 在 IIS 管理器中启动您的默认网站。它将正常工作。
欲了解更多详情,请查看这里