Назад | Перейти на главную страницу

Настройте веб-сайт IIS для альтернативного порта и получите ошибку разрешения доступа

Когда я настраиваю 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. Это сработает.

Для более подробной информации проверьте Вот