c# - 在 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");
}
解决方案
而不是编写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 上运行。
推荐阅读
- javascript - 使用 JavaScript 进行表单提交验证
- python - Tensorflow 2.x 给了我 DatasetV1Adapter 而不是 Dataset
- reactjs - ReactJS useState, onClick 显示信息窗口
- python - 如何在 docker 容器内运行时自动在 API 路由文件中进行 FASTAPI 拾取更改?
- visual-studio-code - Visual Studio Code 自动完成在 .js 文件中的方法后添加括号
- doctrine-orm - “恢复出厂设置”任何迁移的最佳方法是什么
- c# - 如何将 WPF 控件绑定到多个源,但只显示最近更新的源
- javascript - 如何动态导入和排除 JavaScript 代码?
- ruby-on-rails - RoR ActiveRecord 加入帮助或替代查询
- reactjs - 如何使用他们的 API V2 将 Go To Webinar 与会者注册到特定会话?