首页 > 解决方案 > 在 IIS 中发布后,在 C# ASP.net 中执行 .Bat 文件不起作用

问题描述

批处理文件属性

这是我当前的代码。但我认为问题出在 IIS 中,因为我在调试模式下尝试它并且它可以工作,并且当我发布 bat 文件时不会打开。

public  ActionResult Print(int? id)
    {

        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Item item =  db.Items.Find(id);
        Origin origin =  db.Origins.Where(x => x.OriginMainID == item.OriginMainID && x.IsActive == true).FirstOrDefault();
        var user =  UserManager.FindById(item.CreatedBy);
        string fileLoc = @"e:\SAMPLE.txt";
        string text = "";
        text += item.PropertyCode + "," + origin.Assignee.LName + " " + origin.Assignee.FName + "," + origin.Assignee.Department.ShortCode + "," + user.LastName + " " + user.FirstName + "," + origin.Assignee.CMID;
        if (System.IO.File.Exists(fileLoc))
        {
            using (StreamWriter sw = new StreamWriter(fileLoc))
            {
                sw.Write(text);
            }
        }
        if (item == null && origin == null)
        {
            return HttpNotFound();
        }

         Process.Start(@"C:\PANDA.bat");
        return RedirectToAction("Index");
    }

标签: c#asp.netbatch-fileiis

解决方案


而不是编写Process.Start(@"C:\PANDA.bat"); 尝试使用以下代码段。

Process proc = new Process();
proc.StartInfo.FileName = @"C:\PANDA.bat";
proc.StartInfo.Verb = "runas";
proc.Start();

proc.StartInfo.Verb = "runas"; 此行将在托管环境中以管理员身份执行代码,因此它将在 IIS 上运行。


推荐阅读