首页 > 解决方案 > 在命令行中关闭 IIS Express

问题描述

我想在我的 .NET 应用程序中使用命令行启动和停止 IIS Express 服务以进行测试,但是 iisreset 对我的 iis express 服务没有影响,我找不到解决问题的方法。

有趣的是,这有效:在此处输入图像描述

但是当我尝试在我的代码中完全复制它时,使用按钮单击 Q 停止服务不起作用。这是我的代码:

        Process cmd = new Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.RedirectStandardInput = true;
        cmd.StartInfo.RedirectStandardOutput = true;
        cmd.StartInfo.CreateNoWindow = false;
        cmd.StartInfo.UseShellExecute = false;
        cmd.Start();

        cmd.StandardInput.WriteLine("cd C:\\Program Files (x86)\\IIS Express\\");
        //var applicationPath = 
        cmd.StandardInput.WriteLine(@".\iisexpress /path:c:\users\<User-Name>\source\repos\pinkey-depot\pinkey-Depot\ /port:62008");
        
        _driver.Url = ("http://localhost:62008/Customers/Create");
        //this should pass
        Assert.True(_driver.FindElement(By.Id("EMail")).Displayed);
        Assert.True(_driver.FindElement(By.Id("Firstname")).Displayed);
        
        cmd.StandardInput.WriteLine("q"); //seems to have no effect

        _driver.Url = ("http://localhost:62008/Customers/Create");
        //this should fail
        Assert.True(_driver.FindElement(By.Id("EMail")).Displayed);
        Assert.True(_driver.FindElement(By.Id("Firstname")).Displayed);

        cmd.StandardInput.Flush();
        cmd.StandardInput.Close();
        cmd.Kill();

我花了很长时间试图解决这个问题,我不敢相信没有办法按照我的意愿去做。

标签: c#.netcommand-lineiis-express

解决方案


推荐阅读