值''无效

时间:2014-08-25 03:21:42

标签: c# asp.net iis

我有一个ASP.NET应用程序来创建分发列表。它在使用IIS Express的开发机器上运行正常,但在服务器上,我从标准输出中收到以下错误:

  

价值''无效。

以下是我用于邮件启用通讯组列表的代码。我已经用一个简单的" echo test"替换了powershell脚本。批处理文件,但同样的错误仍来自标准输出。

//ProcessStartInfo info = new ProcessStartInfo("c:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", "c:\\PowershellScripts\\EnableDL.ps1 -dlName '" + model.Name + "'");
ProcessStartInfo info = new ProcessStartInfo("c:\\powershellscripts\\test.bat");
info.UseShellExecute = false;
info.RedirectStandardOutput = true;
info.RedirectStandardError = true;
info.RedirectStandardInput = true;
info.CreateNoWindow = true;
info.Domain = "CONTOSO.COM";
info.UserName = User.Identity.Name;
info.Password = securePassword;

using (Process run = Process.Start(info))
{
    ModelState.AddModelError("dlcreate", run.StandardOutput.ReadToEnd());
    run.WaitForExit();
}

我只是不明白可能导致这种情况的原因。在我的开发机器(IIS Express)上运行脚本工作正常,并通过CMD以服务器上的用户身份运行脚本也可以正常工作。我甚至无法通过CMD重现错误。有什么想法吗?

更新:不确定它是否有任何帮助,但是当我删除域,用户名和密码对象时,所有可执行文件在DefaultAppPool用户下运行都没有问题。

2 个答案:

答案 0 :(得分:1)

我认为您可能需要在ASP.Net应用程序上“完全信任”才能在shell中启动某些内容。这是一个关于Web应用程序信任级别的链接。

http://msdn.microsoft.com/en-us/library/vstudio/330a99hc(v=vs.100).aspx

答案 1 :(得分:0)

对于那些遇到此问题的人。我发现问题是您冒充的用户没有权限在IIS服务的桌面上运行该应用程序。

This Page底部链接的示例代码为我修复了它。