前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WPF桌面开发集成Nginx服务器

WPF桌面开发集成Nginx服务器

作者头像
码客说
发布2020-07-27 17:33:22
1.3K0
发布2020-07-27 17:33:22
举报
文章被收录于专栏:码客

准备工作

Nginx下载

http://nginx.org/en/download.html

下载后放在项目的根目录下

文件夹名设置为Nginx

把配置中的默认监听的端口号改为100078

复制Nginx到目标目录

项目->属性->生成事件->生成前事件命令行

添加如下

复制目录

代码语言:javascript
复制
xcopy /Y /i /e $(ProjectDir)\Nginx $(TargetDir)\Nginx

CMD中打开关闭

在CMD中打开

代码语言:javascript
复制
cd nginxpath
.\nginx.exe

使用CMD结束

代码语言:javascript
复制
taskkill /f /t /im nginx.exe

C#中运行和关闭Nginx

打开notepad

我们一般调用外部程序的方法

代码语言:javascript
复制
Process p = Process.Start("notepad.exe");
//关键,等待外部程序退出后才能往下执行
p.WaitForExit();

运行Nginx

代码语言:javascript
复制
private static void StartNginx()
{
    string basePath = AppDomain.CurrentDomain.BaseDirectory;
    string nginxPath = System.IO.Path.Combine(basePath, "Nginx");

    Process mps = new Process();
    ProcessStartInfo mpsi = new ProcessStartInfo("nginx.exe");
    mpsi.WorkingDirectory = nginxPath;
    mpsi.UseShellExecute = true;
    mpsi.RedirectStandardInput = false;
    mpsi.RedirectStandardOutput = false;
    mpsi.CreateNoWindow = true;
    mpsi.WindowStyle = ProcessWindowStyle.Hidden;
    mps.StartInfo = mpsi;
    mps.Start();
    //不要写下面这一行 程序会等待退出后才往下执行
    //mps.WaitForExit();
}

说明

调用Nginx一定要注意以下参数的设置,否则不生效 mpsi.WorkingDirectory = nginxPath; mpsi.UseShellExecute = true; mpsi.RedirectStandardInput = false; mpsi.RedirectStandardOutput = false;

结束Nginx

使用C#结束

代码语言:javascript
复制
private static void StopNginx()
{
    Process[] processes = Process.GetProcessesByName("nginx");
    foreach (Process p in processes)
    {
        string basePath = AppDomain.CurrentDomain.BaseDirectory;
        string nginxPath = System.IO.Path.Combine(basePath, "Nginx", "nginx.exe");
        if (nginxPath == p.MainModule.FileName)
        {
            p.Kill();
            p.Close();
        }
    }
}

注意

进程名称不要写成nginx.exe,会找不到nginx进程。 本来我还尝试了用进程对象来结束,但是不行,因为Nginx启动会产生多个进程,单独结束掉一个是不行的!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
    • Nginx下载
      • 复制Nginx到目标目录
      • CMD中打开关闭
      • C#中运行和关闭Nginx
        • 运行Nginx
          • 结束Nginx
          相关产品与服务
          命令行工具
          腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档