Когда я настраиваю IIS для запуска веб-сайта через порт 1414, я получаю следующую ошибку:
--------------------------- Диспетчер информационных служб Интернета (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.
Что такое разрешения на доступ к сокетам и как исправить свои, чтобы разрешить доступ?
Обновление: вывод netstat для порта 1414.
C: \ Windows \ system32> netstat -ban | findstr 1414
C: \ Windows \ system32>
Согласно документации IBM, mq по умолчанию 1414, поэтому вы не сможете одновременно использовать веб-сайт и mq, используя один и тот же порт. (Если я не понимаю ваш вопрос.)
Вышеуказанная ошибка возникает, потому что порт по умолчанию 8080 не назначен системе. Таким образом, веб-сайт по умолчанию в диспетчере IIS не запускается. Чтобы устранить указанную выше ошибку, я выполнил следующие шаги, и у меня это сработало.
Шаг 1 - Запустите, введите cmd, появится командная строка.
Шаг 2 - Нам нужно найти, какой процесс использует порт по умолчанию 8080. Чтобы найти этот порт, введите следующую команду в командной строке. Netstat -ano
Шаг 3. Как показано на экране выше, порт 8080 использует процесс 3152. Теперь нам нужно найти, какое приложение назначено для процесса с идентификатором 3152. Введите tasklist /fi “PID eq 3152”
в командной строке и посмотрите результат.
Шаг 4 - Запустите свой веб-сайт по умолчанию в диспетчере IIS. Это сработает.
Для более подробной информации проверьте Вот