Как запустить/остановить IISExpress Server?
Я установил MS Visual Web Developer 2010, который включает iisexpress.
До этого я установил сервер xampp для своих php-приложений.
Я хотел бы знать, как я могу остановить iis, чтобы запустить xampp? Похоже, что они используют один и тот же порт. Я предполагаю, что они могут быть изменены, но я не хочу вмешиваться в другие программы, и более того, я думаю, что это должно быть проще.
Thank в!
Ответы
Ответ 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 для ваших проектов, то это не все, что необходимо, чтобы оставить его, если вы никогда его не используете.