如何启动/停止IISExpress服务器?

时间:2012-03-31 12:04:00

标签: iis visual-web-developer

我安装了MS Visual Web Developer 2010,其中包括iisexpress。

在此之前,我已经为我的php应用程序安装了xampp服务器。

我想知道为了能够启动xampp我怎么能阻止iis?它们似乎使用相同的端口。我想这些可以改变,但我不想干涉其他程序,而且我认为这应该更简单。

感谢的!

7 个答案:

答案 0 :(得分:76)

关闭IIS Express

默认情况下,Visual Studio会按时钟将IISExpress图标放置在屏幕右下角的系统托盘中。您可以右键单击它并选择退出。如果看不到图标,请尝试单击小箭头以查看系统托盘中的完整图标列表。

IIS Express icon

然后右键单击并选择退出:

enter image description here


更改端口

另一种选择是通过修改项目属性来更改端口。您需要为解决方案中的每个Web项目执行此操作。

  1. Visual Studio>解决方案资源管理器
  2. 右键单击Web项目,然后选择“属性”
  3. 转到网络标签
  4. 在“服务器”部分中,更改“项目网址”框中的端口
  5. 对解决方案中的每个Web项目重复
  6. Changing the IIS Express port


    如果All Else失败

    如果这不起作用,您可以尝试启动任务管理器并关闭IIS Express系统托盘(32位)进程和IIS Express工作进程(32位)。

    Terminating the IIS Express Worker Thread process

    如果它仍然不起作用,正如ni5ni6指出的那样,端口80上运行了“Web部署代理服务”。使用这篇文章来跟踪哪个进程使用它,并将其关闭:

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

答案 1 :(得分:4)

msigman给出的一个很好的答案。我只想在 Windows 10 中添加IIS Express System Tray (32 bit)进程下的Visual Studio进程:

enter image description here

答案 2 :(得分:1)

我遇到了同样的问题。我的目标是在Windows 7 Home上使用Oracle测试PHP脚本,而不考虑安装IIS7 express,并且作为事后的想法将Apache视为一种更简单的方法。我将分别探讨IIS express的功能。

挑战是在安装IIS7 express之后,Apache安装正在成为IIS Express的第二小提琴,并带来了Microsoft主页。

我解决了端口80问题: -

  1. 停止Microsoft WedMatrix: - net stop is / y
  2. 重新启动Apache服务器
  3. 验证Apache现在正在监听端口: - netstat -anop
  4. 清除浏览器缓存 - Firefox和IE
  5. 运行localhost

答案 3 :(得分:1)

打开任务管理器并杀死这两个进程。他们将自动启动备份。 然后再次尝试调试您的项目。

enter image description here

答案 4 :(得分:0)

这是一个为IISExpress实现Start(),Stop()和IsStarted()的静态类。它由硬编码的静态属性进行参数化,并通过命令行参数将调用信息传递给IISExpress。它使用Nuget包,MissingLinq.Linq2Management,它令人惊讶地提供System.Diagnostics.Process中缺少的信息,特别是命令行参数,然后可用于帮助消除歧义可能的IISExpress进程的多个实例,因为我不保留过程Ids。我认为有一种方法可以用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 :(得分:0)

您可以停止任何IIS Express应用程序,也可以停止所有应用程序。右键单击位于任务栏右下角的IIS Express图标。然后选择“显示所有应用程序”

enter image description here

答案 6 :(得分:-7)

手动停止IIS:

  1. 转到开始菜单
  2. 在IIS中输入
  3. 您获得了经理(Internet信息服务(IIS)管理器的搜索结果,在其右侧有重启/停止/启动按钮。

    如果您不希望IIS在启动时启动,因为它真的很烦人......:

    1. 转到开始菜单。
    2. 点击控制面板。
    3. 点击程序。
    4. 打开或关闭Windows功能
    5. 等到列表加载
    6. 搜索Internet信息服务(IIS)。
    7. 取消选中此框。
    8. 等到完成更改后。
    9. 重新启动计算机,但信息框会再次告诉您这样做(如果您愿意,可以稍后再保留)。
    10. 哦,IIS和xampp基本上以不同的方式做同样的事情。如果你的项目有Xampp,那么如果你还没有使用它,那么它就不是真的让它保持开启。