我正在尝试从wep api启动c#程序。 当我在Visual Studio开发下尝试此功能时,它将运行。 在IIS上发布该程序后,该程序无法启动。 我没有任何错误,它永远不会在catch块中运行。 为什么“ process.Start”不起作用?
public class ServerController : ApiController
{
[ActionName("starthilfe")]
public Info GetHelp()
{
Info inf = new Info();
try
{
Process P = new Process();
P.StartInfo.FileName = @"D:\Videos\Deutsch\WindowsFormsApp1.exe";
P.Start();
inf.TextFeld1 = "Hilfe erfolgreich gestartet";
return inf;
}
catch (Exception ex)
{
inf.TextFeld1 = "EXEPTION";
inf.TextFeld2 = ex.Message;
return inf;
}
}
}
答案 0 :(得分:0)
首先,我将检查运行应用程序的服务器上遇到了哪些权限问题。 其次,我认为问题的核心在于,当您以调试模式运行Web应用程序时,您将以自己的身份运行。但是,当您发布到IIS时,您很有可能以IUser身份运行。 IIs网站的特殊用户。 This堆栈溢出文章可以帮助您确定IUser拥有哪些权利。一种解决方法是为具有比IUser更大权限的应用程序创建另一个用户。提醒您,更改用户您的Web应用程序使用可能会带来安全隐患。所以你要小心