Как запустить / остановить IISExpress Server? - PullRequest
43 голосов
/ 31 марта 2012

Я установил MS Visual Web Developer 2010, который включает iisexpress.

Перед этим я установил сервер xampp для своих приложений php.

Я хотел бы знать, как я могу остановить iisдля того, чтобы можно было запустить xampp?Похоже, что они используют один и тот же порт.Я думаю, что они могут быть изменены, но я не хочу вмешиваться в другие программы, и более того, я думаю, это должно быть проще.

Спасибо!

Ответы [ 5 ]

76 голосов
/ 31 марта 2012

Закрытие IIS Express

По умолчанию Visual Studio размещает значок IISExpress на панели задач в нижней правой части экрана рядом с часами. Вы можете щелкнуть правой кнопкой мыши и выбрать выход. Если вы не видите значок, попробуйте нажать на маленькую стрелку, чтобы просмотреть полный список значков на панели задач.

IIS Express icon

, затем щелкните правой кнопкой мыши и выберите Выход:

enter image description here


Изменение порта

Другой вариант - изменить порт, изменив свойства проекта. Это необходимо сделать для каждого веб-проекта в вашем решении.

  1. Visual Studio> Обозреватель решений
  2. Щелкните правой кнопкой мыши веб-проект и выберите Свойства
  3. Перейти на веб-вкладку
  4. В разделе «Серверы» измените порт в поле «URL-адрес проекта»
  5. Повторите для каждого веб-проекта в решении

Changing the IIS Express port


Если все остальное терпит неудачу

Если это не сработает, попробуйте запустить диспетчер задач и закрыть процесс системного лотка IIS Express (32-разрядный) и рабочий процесс IIS Express (32-разрядный).

Terminating the IIS Express Worker Thread process

Если он по-прежнему не работает, как указал ni5ni6, на порту 80 запущена «Служба агента веб-развертывания». Используйте эту статью, чтобы отследить, какой процесс ее использует, и отключите ее:

https://sites.google.com/site/anashkb/port-80-in-use

4 голосов
/ 12 июля 2018

Отличный ответ от msigman.Я просто хочу добавить, что в Windows 10 вы можете найти IIS Express System Tray (32 bit) процесс в Visual Studio процесс:

enter image description here

1 голос
/ 27 марта 2013

Я сталкивался с той же проблемой. Моя цель - протестировать PHP-скрипты с Oracle на Windows 7 Home и, не задумываясь, установить IIS7 Express и в качестве запоздалой мысли посчитал Apache более простым подходом. Я буду изучать возможности IIS Express отдельно.

Проблема заключалась в том, что после установки IIS7 express установка Apache играла вторую скрипку для IIS express и открывала домашнюю страницу Microsoft.

Я решил проблему с портом 80: -

  1. Остановка Microsoft WedMatrix: - чистый останов был / y
  2. Перезапустил сервер Apache
  3. Проверка того, что Apache теперь прослушивает порт: - netstat -anop
  4. Очистка кешей браузеров - Firefox и IE
  5. Запуск локального хоста
0 голосов
/ 12 января 2014

Вот статический класс, реализующий Start (), Stop () и IsStarted () для IISExpress. Он параметризован жестко закодированными статическими свойствами и передает информацию о вызовах через аргументы командной строки в IISExpress. Он использует пакет Nuget MissingLinq.Linq2Management, который неожиданно предоставляет информацию, отсутствующую в System.Diagnostics.Process, в частности, аргументы командной строки, которые затем можно использовать для устранения неоднозначности возможных множественных экземпляров процессов IISExpress, поскольку я не сохраняю Идентификаторы процесса. Я предполагаю, что есть способ сделать то же самое с помощью только System.Diagnostics.Process, но жизнь коротка. Наслаждайтесь.

using System.Diagnostics;
using System.IO;
using System.Threading;
using MissingLinq.Linq2Management.Context;
using MissingLinq.Linq2Management.Model.CIMv2;

public static class IisExpress
{
  #region Parameters
  public static string SiteFolder = @"C:\temp\UE_Soln_7\Spc.Frm.Imp";
  public static uint Port = 3001;
  public static int ProcessStateChangeDelay = 10 * 1000;
  public static string IisExpressExe = @"C:\Program Files (x86)\IIS Express\iisexpress.exe";
  #endregion

  public static void Start()
  {
    Process.Start(InvocationInfo);
    Thread.Sleep(ProcessStateChangeDelay);
  }
  public static void Stop()
  {
    var p = GetWin32Process();
    if (p == null) return;

    var pp = Process.GetProcessById((int)p.ProcessId);
    if (pp == null) return;

    pp.Kill();
    Thread.Sleep(ProcessStateChangeDelay);
  }
  public static bool IsStarted()
  {
    var p = GetWin32Process();
    return p != null;
  }

  static readonly string ProcessName = Path.GetFileName(IisExpressExe);
  static string Quote(string value) { return "\"" + value.Trim() + "\""; }
  static string CmdLine =
    string.Format(
      @"/path:{0} /port:{1}",
      Quote(SiteFolder),
      Port
      );
  static readonly ProcessStartInfo InvocationInfo =
    new ProcessStartInfo()
      {
        FileName = IisExpressExe,
        Arguments = CmdLine,
        WorkingDirectory = SiteFolder,
        CreateNoWindow = false,
        UseShellExecute = true,
        WindowStyle = ProcessWindowStyle.Minimized
      };
  static Win32Process GetWin32Process()
  {
    //the linq over ManagementObjectContext implementation is simplistic so we do foreach instead
    using (var mo = new ManagementObjectContext())
      foreach (var p in mo.CIMv2.Win32Processes)
        if (p.Name == ProcessName && p.CommandLine.Contains(CmdLine))
          return p;
    return null;
  }
}
0 голосов
/ 08 марта 2013

чтобы остановить IIS вручную:

  1. перейти в стартовое меню
  2. введите в IIS

вы получите результат поиска для менеджера (Internet Information Services (IIS), справа от него есть кнопки перезагрузки / остановки / запуска.

Если вы не хотите, чтобы IIS запускался при запуске, потому что это действительно раздражает ..:

  1. перейти в меню «Пуск».
  2. щелкните панель управления.
  3. клик программ.
  4. включить или выключить функции Windows
  5. дождаться загрузки списка
  6. поиск информационных служб Интернета (IIS).
  7. снимите флажок.
  8. Подождите, пока это не будет сделано с изменениями.
  9. перезагрузите компьютер, но затем информационное окно снова скажет вам сделать это (вы можете оставить это на потом, если хотите).

о, и IIS и xampp в основном делают одно и то же, только немного по-другому. И если у вас есть Xampp для ваших проектов, тогда совсем не обязательно оставлять его включенным, если вы его никогда не используете.

...