【问题标题】:Running command prompt arguments by ASP.Net application通过 ASP.Net 应用程序运行命令提示符参数
【发布时间】:2015-03-10 07:02:42
【问题描述】:

我想使用 ASP.Net 应用程序 运行命令提示符参数。我正在使用视觉工作室 2013。 有可能吗?

以下是我想使用 MVC 应用程序执行的命令提示符命令,以在 jenkins

中创建和运行作业
  1. C:\Users\.jenkins java -jar C:\Users.jenkins\war\WEB-INF\jenkins- cli.jar -s http://localhost create-job myjob

  2. C:\Users\ .jenkins java -jar C:\Users.jenkins\war\WEB-INF\jenkins-cli.jar -s http://localhost / build myjob

【问题讨论】:

    标签: asp.net asp.net-mvc-4 visual-studio-2013 jenkins jenkins-cli


    【解决方案1】:

    确定一下,您想在您的网络服务器上运行这些命令行工具,对吧?不在连接到 Web 应用程序的客户端上。

    如果是前者,这很简单,请确保您的 IIS 应用程序池在允许执行这些工具的用户帐户下运行,并使用 Process 类和 ProcessStartInfo 类来调用命令行和等待结果:

    string jobname = jobNameFromInput;
    
    if (!Regex.IsMatch(jobname, "^(\"[a-z0-9-_ ]+\"|'[a-z0-9-_ ]+'|[a-z0-9-_]+)$", RegexOptions.IgnoreCase)
    {
        throw SecurityException("Invalid job name");
    }
    
    ProcessStartInfo startInfo = new ProcessStartInfo("C:\Users.jenkins\java.exe");
    
    string argumentTemplate = "-jar C:\\Users.jenkins\\war\\WEB-INF\\jenkins-cli.jar -s http://localhost / build {0}";
    
    startInfo.Arguments =  string.Format(argumentTemplate, jobname);
    Process.Start(startInfo);
    Process.WaitForExit();
    

    见:

    【讨论】:

    • 我只想通过用户交互来获取工作名称。我想通过在文本框中输入名称来更改工作名称。即我想动态更改 myjobarguments 中。我该怎么做?
    • 它只是一个字符串。因此,您可以在构建命令行时合并值。确保在进程调用中接受用户数据时,彻底清除它。这样人们就不能将| deltree c:\windows 添加到其中。
    • 我在 ("C:\Users \.jenkins\java.exe") 中收到以下错误;无法识别的转义序列
    • 对不起,我忘了转义字符串中的 ``。但这些是您现在要问我的非常 基本C# 内容。您应该能够自己解决这些问题,并在需要时编辑我的答案。
    猜你喜欢
    • 2015-04-21
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 2017-07-05
    • 1970-01-01
    相关资源
    最近更新 更多