我必须从我们的内部网站运行一个工具。用户将从UI提供的输入很少,然后我想使用用户凭据运行该工具。当我从本地机器运行它时,我的代码工作正常,但是当我将它部署到生产服务器并尝试从那里执行它时,它没有启动任何东西。
这是我的代码,我们将非常感谢任何建议。
System.Diagnostics.ProcessStartInfo PSI = new System.Diagnostics.ProcessStartInfo(@"D:\run.bat");
PSI.UserName = "username";
PSI.Domain = "domain";
System.Security.SecureString securePwd = new System.Security.SecureString();
string password = "password";
foreach (char c in password)
{
// Append the character to the password.
securePwd.AppendChar(c);
}
PSI.Password = securePwd;
PSI.UseShellExecute = false;
process.StartInfo = PSI;
PSI.Arguments = SiteId.Text + " " + WebServiceUrl.Text + " " +LogFile.Text;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
答案 0 :(得分:1)
<强>首先强>
如果确实如此:
如果不是:
答案 1 :(得分:0)
我想关闭此线程,因为我解决了从生产服务器运行应用程序的问题。但我面临着使用特定用户名和运行该应用程序的问题。密码。它始终以apppool中设置的任何标识运行。所以现在如果我只使用这一行它适用于app pool默认身份
Process.Start("notepad");
但如果我使用这行代码,它甚至不会在该服务器中启动记事本
string password = "XXXXX";
System.Security.SecureString securePwd = new System.Security.SecureString();
foreach (char c in password)
{
// Append the character to the password.
securePwd.AppendChar(c);
}
Process.Start("notepad", "username", securePwd, "domain");
我将就此问一个单独的问题。感谢所有回复的人。