如何启动/停止 IIS Express 服务器?
Posted
技术标签:
【中文标题】如何启动/停止 IIS Express 服务器?【英文标题】:How do I start/stop IIS Express Server? 【发布时间】:2012-04-14 21:20:57 【问题描述】:我已经安装了包含 IIS Express 的 MS Visual Web Developer 2010。
在此之前,我已经为我的 php 应用程序安装了 XAMPP 服务器。
我想知道如何停止 IIS 才能启动 XAMPP?看来他们使用相同的端口。我想这些可以改变,但我不想干扰其他程序,而且我认为这应该更简单。
谢谢!
【问题讨论】:
我遇到了同样的问题,发现在80端口上运行了“Web部署代理服务”。使用这篇文章追踪哪个进程使用它,并将其关闭:@987654321 @ 【参考方案1】:关闭 IIS Express
默认情况下,Visual Studio 会将 IISExpress 图标按时钟放置在屏幕右下方的系统托盘中。您可以右键单击它并选择退出。如果您没有看到该图标,请尝试单击小箭头以查看系统托盘中的完整图标列表。
然后右键单击并选择退出:
更改端口
另一种选择是通过修改项目属性来更改端口。您需要为解决方案中的每个 Web 项目执行此操作。
-
Visual Studio > 解决方案资源管理器
右键单击 Web 项目并选择“属性”
转到网络标签
在“服务器”部分,更改项目 URL 框中的端口
对解决方案中的每个 Web 项目重复
如果所有其他方法都失败
如果这不起作用,您可以尝试调出任务管理器并关闭 IIS Express 系统托盘(32 位)进程和 IIS Express 工作进程(32 位)。
如果还是不行,如 ni5ni6 指出的那样,80 端口上运行着一个“Web 部署代理服务”。使用这篇文章来追踪使用它的进程,并将其关闭:
https://sites.google.com/site/anashkb/port-80-in-use
【讨论】:
感谢您的建议,但我仍然无法启动 Apache。 执行 CTRL ALT DEL 并确保所有以 IISexpress 开头的线程都已终止。有时,辅助线程会卡住而无法关闭。 也这样做了,但没有成功。我将更改我更熟悉的 Apache 的默认 80 端口。谢谢! @Radu 嗨,你搞定了吗?如果您觉得我的回答有帮助,请标记为已接受。如果没有,请告诉我如何进一步帮助您。谢谢! 您好,我已经更改了 apache 配置以使其监听 localhost:81 而不是 localhost:80。您的建议是合乎逻辑的,但当时对我不起作用。我只是将 :80 重置为我的 apache 的端口,按时钟从 incon 退出。仍然无法正常工作..我尝试过 CRTL ALT DEL,但我没有看到 iis express 或相关的任何进程。如果我将 :81 用于 apache,它不会打扰我,但为了帮助其他人,我的解决方法不是一个选项,告诉我应该是什么进程的名称,所以我尝试停止它。感谢您的善意和耐心!【参考方案2】:msigman 给出了一个很好的答案。我只想补充一点,在 windows 10 中,您可以在 Visual Studio
进程下找到 IIS Express System Tray (32 bit)
进程:
【讨论】:
【参考方案3】:打开任务管理器并终止这两个进程。他们将自动启动备份。 然后再次尝试调试您的项目。
【讨论】:
给这家伙一枚奖章。谢谢!【参考方案4】:我遇到了同样的问题。我的目标是在 Windows 7 Home 上使用 Oracle 测试 PHP 脚本,而无需考虑安装 IIS7 express,事后考虑将 Apache 视为一种更简单的方法。我将分别探讨 IIS express 的功能。
挑战在于,在安装 IIS7 express 之后,Apache 安装是 IIS express 的第二把交椅,并打开了 Microsoft 主页。
我通过以下方式解决了端口 80 问题:-
-
停止 Microsoft WedMatrix :- net stop was /y
重新启动 Apache 服务器
验证 Apache 现在正在监听端口:- netstat -anop
清除浏览器缓存 - Firefox 和 IE
运行本地主机
【讨论】:
【参考方案5】:这是一个为 IISExpress 实现 Start()、Stop() 和 IsStarted() 的静态类。它由硬编码的静态属性参数化,并通过命令行参数将调用信息传递给 IISExpress。它使用 Nuget 包 MissingLinq.Linq2Management,它令人惊讶地提供了 System.Diagnostics.Process 中缺少的信息,特别是命令行参数,这些参数可用于帮助消除 IISExpress 进程可能的多个实例的歧义,因为我不保留进程 ID。我认为有一种方法可以仅使用 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;
【讨论】:
【参考方案6】:您可以停止任何 IIS Express 应用程序,也可以停止所有应用程序。右键单击位于任务栏右下角的 IIS express 图标。然后选择显示所有应用程序
【讨论】:
【参考方案7】:手动停止 IIS:
-
进入开始菜单
输入 IIS
您会得到管理器(Internet 信息服务 (IIS) 管理器的搜索结果,在其右侧有重新启动/停止/启动按钮。
如果您不希望 IIS 在启动时启动,因为它真的很烦人..:
-
转到开始菜单。
点击控制面板。
点击程序。
打开或关闭 Windows 功能
等到列表加载完毕
搜索 Internet 信息服务 (IIS)。
取消选中该框。
等待更改完成。
重新启动计算机,但信息框会再次告诉您这样做(如果您愿意,可以将其留到以后)。
哦,IIS 和 xampp 基本上做同样的事情,只是方式有点不同。而且,如果您的项目中有 Xampp,那么如果您从不使用它,那么将其保留下来也不是那么必要。
【讨论】:
不幸的是,问题是关于 IIS Express :-( 你所解释的过程是关于重新安装IIS,与问题无关。 这些说明用于卸载 IIS。问题只是停止 IIS Express。以上是关于如何启动/停止 IIS Express 服务器?的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 和 IIS Express 随机停止工作
解决node+express在linux上关闭服务器服务就停止的问题(非PM2)