【发布时间】:2018-04-25 04:58:36
【问题描述】:
这是我当前的代码。但我认为问题出在 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");
}
【问题讨论】:
-
运行 ASP.NET 主机进程的用户是否有权访问批处理文件和位置? IIS 似乎不太可能访问
c:\panda.bat。 -
bat 文件的性质是什么(即它试图执行什么程序)?请记住,IIS 应用程序在应用程序池中运行,通常作为具有很少权限的低权限用户,并且无法访问交互式会话(即桌面、窗口等)
-
我的bat文件内容代码如下:C:CD\CD\PROGRAM FILES\BARTENDER BARTEND.EXE /F=e:\SAMPLE1.BTW /P /X
标签: c# asp.net batch-file iis