我安装了MS Visual Web Developer 2010,其中包括iisexpress。
在此之前,我已经为我的php应用程序安装了xampp服务器。
我想知道为了能够启动xampp我怎么能阻止iis?它们似乎使用相同的端口。我想这些可以改变,但我不想干涉其他程序,而且我认为这应该更简单。
感谢的!
答案 0 :(得分:76)
默认情况下,Visual Studio会按时钟将IISExpress图标放置在屏幕右下角的系统托盘中。您可以右键单击它并选择退出。如果看不到图标,请尝试单击小箭头以查看系统托盘中的完整图标列表。
然后右键单击并选择退出:
另一种选择是通过修改项目属性来更改端口。您需要为解决方案中的每个Web项目执行此操作。
如果这不起作用,您可以尝试启动任务管理器并关闭IIS Express系统托盘(32位)进程和IIS Express工作进程(32位)。
如果它仍然不起作用,正如ni5ni6指出的那样,端口80上运行了“Web部署代理服务”。使用这篇文章来跟踪哪个进程使用它,并将其关闭:
答案 1 :(得分:4)
答案 2 :(得分:1)
我遇到了同样的问题。我的目标是在Windows 7 Home上使用Oracle测试PHP脚本,而不考虑安装IIS7 express,并且作为事后的想法将Apache视为一种更简单的方法。我将分别探讨IIS express的功能。
挑战是在安装IIS7 express之后,Apache安装正在成为IIS Express的第二小提琴,并带来了Microsoft主页。
我解决了端口80问题: -
答案 3 :(得分:1)
答案 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)
答案 6 :(得分:-7)
手动停止IIS:
您获得了经理(Internet信息服务(IIS)管理器的搜索结果,在其右侧有重启/停止/启动按钮。
如果您不希望IIS在启动时启动,因为它真的很烦人......:
哦,IIS和xampp基本上以不同的方式做同样的事情。如果你的项目有Xampp,那么如果你还没有使用它,那么它就不是真的让它保持开启。