Как запустить / остановить IISExpress Server?
Я установил MS Visual Web Developer 2010, который включает в себя iisexpress.
До этого я установил сервер xampp для своих приложений php.
Я хотел бы знать, как я могу остановить iis, чтобы иметь возможность запустить xampp? Похоже, что они используют один и тот же порт. Я думаю, что они могут быть изменены, но я не хочу вмешиваться в другие программы, и более того, я думаю, это должно быть проще.
Спасибо!
7 ответов
Закрытие IIS Express
По умолчанию Visual Studio размещает значок IISExpress на панели задач в нижней правой части экрана рядом с часами. Вы можете щелкнуть правой кнопкой мыши и выбрать выход. Если вы не видите значок, попробуйте нажать на маленькую стрелку, чтобы просмотреть полный список значков на панели задач.
затем щелкните правой кнопкой мыши и выберите Exit:
Смена порта
Другой вариант - изменить порт, изменив свойства проекта. Это необходимо сделать для каждого веб-проекта в вашем решении.
- Visual Studio> Обозреватель решений
- Щелкните правой кнопкой мыши веб-проект и выберите "Свойства".
- Перейти на вкладку Интернет
- В разделе "Серверы" измените порт в поле "URL-адрес проекта".
- Повторите для каждого веб-проекта в решении
Если все остальное терпит неудачу
Если это не сработает, попробуйте запустить диспетчер задач и закрыть процесс системного лотка IIS Express (32-разрядный) и рабочий процесс IIS Express (32-разрядный).
Если он все еще не работает, как указал ni5ni6, на порту 80 запущена "Служба агента веб-развертывания". Используйте эту статью, чтобы отследить, какой процесс ее использует, и отключить ее:
Отличный ответ, данный msigman. Я просто хочу добавить, что в Windows 10 вы можете найти IIS Express System Tray (32 bit)
процесс под Visual Studio
процесс:
Откройте диспетчер задач и уничтожьте оба этих процесса. Они автоматически запустят резервную копию. Затем попробуйте снова отладить проект.
Я столкнулся с той же проблемой. Моя цель - протестировать PHP-скрипты с Oracle на Windows 7 Home и, не задумываясь, установить IIS7 Express и в качестве запоздалой мысли посчитал Apache более простым подходом. Я буду изучать возможности IIS Express отдельно.
Проблема заключалась в том, что после установки IIS7 Express установка Apache играла вторую скрипку с IIS express и открывала домашнюю страницу Microsoft.
Я решил проблему с портом 80:
- Остановка Microsoft WedMatrix:- нет остановки был / у
- Перезапустил сервер Apache
- Проверка того, что Apache теперь прослушивает порт:- net stat -anop
- Очистка кешей браузеров - Firefox и IE
- Запуск localhost
Вот статический класс, реализующий 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;
}
}
Вы можете остановить любое приложение IIS Express или все приложения. Щелкните правой кнопкой мыши значок IIS Express, расположенный в правом нижнем углу панели задач. Затем выберите Показать все приложение
Чтобы остановить IIS вручную:
- перейти в меню "Пуск"
- введите IIS
вы получаете результат поиска для менеджера (Internet Information Services (IIS)), справа от него есть кнопки перезагрузки / остановки / запуска.
Если вы не хотите, чтобы IIS запускался при запуске, потому что это действительно раздражает..:
- перейти в меню "Пуск".
- нажмите панель управления.
- нажмите программы.
- включить или отключить функции Windows
- дождитесь загрузки списка
- поиск информационных служб Интернета (IIS).
- снимите флажок
- Подождите, пока это не будет сделано с изменениями.
- перезагрузите компьютер, но затем информационное окно снова скажет вам сделать это (вы можете оставить это на потом, если хотите).
о, и IIS и xampp в основном делают то же самое только немного по-другому. И если у вас есть Xampp для ваших проектов, тогда совсем не обязательно оставлять его включенным, если вы вообще никогда его не используете.