Подтвердить что ты не робот

Как запустить/остановить IISExpress Server?

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

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

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

Thank в!

4b9b3361

Ответ 1

Закрытие IIS Express

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

IIS Express icon

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

enter image description here


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

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

  • Visual Studio > Обозреватель решений
  • Щелкните правой кнопкой мыши веб-проект и выберите "Свойства"
  • Перейдите на вкладку "Веб"
  • В разделе "Серверы" измените порт в поле URL проекта.
  • Повторить для каждого веб-проекта в решении

Changing the IIS Express port


Если All Else Fails

Если это не сработает, вы можете попытаться открыть диспетчер задач и закрыть процесс системного лотка 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

Ответ 2

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

enter image description here

Ответ 3

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

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

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

  • Остановка Microsoft WedMatrix: - net stop was/y
  • Перезапуск сервера Apache
  • Проверка Apache теперь прослушивает порт: - netstat -anop
  • Очистка кэшей браузеров - Firefox и IE
  • Запуск localhost

Ответ 4

Вот статический класс, реализующий 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;
  }
}

Ответ 5

Вы можете остановить любое приложение IIS Express или все приложения. Щелкните правой кнопкой мыши значок IIS Express, который находится в правом нижнем углу панели задач. Затем выберите Показать все приложения

enter image description here

Ответ 6

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

  • перейти в меню "Пуск"
  • введите в IIS

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

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

  • перейдите в меню "Пуск".
  • щелкните панель управления.
  • щелкните программы.
  • включить или отключить функции окна
  • дождитесь загрузки списка.
  • поиск информационных служб Интернета (IIS).
  • снимите флажок.
  • Подождите, пока это не произойдет с изменениями.
  • перезагрузите компьютер, но затем снова появится информационное окно, которое вам все равно будет делать (вы можете оставить это позже, если хотите).

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