簡體   English   中英

使用IIS Express幾秒鍾后站點停止工作

[英]Site stops working after few seconds with IIS Express

我必須從WPF應用程序啟動IIS Express。 我可以啟動IISExpress,並在網站上瀏覽幾秒鍾。 然后,當我點擊任何鏈接時,它不會加載。 然后,如果我關閉WPF應用程序,網頁會立即響應。 我的代碼:

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
   StartSite();
}

public void StartSite()
{
    string path = @"C:\Program Files\IIS Express\iisexpress.exe";
    string args = @"/path:C:\Sites /port:9090 /systray:true";

   if (!File.Exists(path))
      throw new FileNotFoundException();

   var process = Process.Start(new ProcessStartInfo()
   {
     FileName = path,
     Arguments = args,
     RedirectStandardOutput = true,
     UseShellExecute = false,
     CreateNoWindow = true
   });
}

任何猜測為什么網站只運行幾秒鍾,並在關閉啟動iisexpress的應用程序后再次工作?

編輯

我注意到,當我構建“Debug”時,它會發生,但是當我構建“Release”時,問題不會發生。

我通過創建IIS啟動器(控制台應用程序)解決了我的問題。 我將一些參數傳遞給這個應用程序,它啟動IISExpress然后死掉。 現在在我的WPF應用程序中,而不是為IISExpress創建進程,我為我的啟動器創建了一個進程。 此控制台應用程序還通過退出代碼將進程ID返回給WPF。

class Program
{
    static void Main(string[] args)
    {
        if (args == null)
            Environment.Exit(-1);

        string exeIIS = args[0];
        string websitePath = args[1];
        string port = args[2];

        string argsIIS = MakeIISExpressArgs(websitePath, port);
        int processID = LaunchIISExpress(argsIIS, exeIIS);

        Environment.Exit(processID);
    }

    private static int LaunchIISExpress(string argsIIS, string pathExeIIS)
    {
        var process = Process.Start(new ProcessStartInfo()
        {
            FileName = pathExeIIS,
            Arguments = argsIIS,
            RedirectStandardOutput = true,
            UseShellExecute = false,
            CreateNoWindow = true
        });

        return process.Id;
    }

    private static string MakeIISExpressArgs(string websitePath, string port)
    {
        var argsIIS = new StringBuilder();
        argsIIS.Append(@"/path:" + websitePath);
        argsIIS.Append(@" /Port:" + port);
        return argsIIS.ToString();
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM