Asp.net mvc 3 从MVC应用程序中使用Pgp.exe
我的任务是将遗留应用程序转换为mvc。应用程序使用pgp.exe对用户输入进行pgp签名并将其作为电子邮件发送。该应用程序在本地和测试服务器上工作,但不会在实时服务器上运行。我不得不跳过一些难题,比如在应用程序池中运行一个指定的用户,这样我们就可以在用户配置文件中设置密钥,但它确实起了作用 由于某些原因,在与测试服务器相同的windows 2003 IIS 6实时服务器上,它会失败。问题是pgp.exe似乎不会签署和创建文件,而我从控制台收到的消息是out。“签名错误”??当我将该命令放入以应用程序池用户身份登录的shell窗口时,它运行没有问题(在与某些权限发生冲突后),但在mvc应用程序/IIS服务器上运行时失败。下面是用于调用流程的代码Asp.net mvc 3 从MVC应用程序中使用Pgp.exe,asp.net-mvc-3,c#-4.0,console-application,pgp,Asp.net Mvc 3,C# 4.0,Console Application,Pgp,我的任务是将遗留应用程序转换为mvc。应用程序使用pgp.exe对用户输入进行pgp签名并将其作为电子邮件发送。该应用程序在本地和测试服务器上工作,但不会在实时服务器上运行。我不得不跳过一些难题,比如在应用程序池中运行一个指定的用户,这样我们就可以在用户配置文件中设置密钥,但它确实起了作用 由于某些原因,在与测试服务器相同的windows 2003 IIS 6实时服务器上,它会失败。问题是pgp.exe似乎不会签署和创建文件,而我从控制台收到的消息是out。“签名错误”??当我将该命令放入以应用
var startInfo = new ProcessStartInfo();
startInfo.FileName = _pgpexeLocation;
//startInfo.FileName = "pgp.exe";
startInfo.Arguments = string.Format("-sta \"{0}\" -u keyuser-z keypass +COMPATIBLE +FORCE", _tempFilePath);
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.LoadUserProfile = true;
using (Process exeProcess = Process.Start(startInfo))
{
// TODO: set limit to wait for and deal with exit
exeProcess.WaitForExit();
//var stringItem = exeProcess.StandardOutput.ReadToEnd();
//Logger.Info(stringItem);
}
我在这里抓救命稻草,希望有人以前也做过类似的事情,能帮上忙。我猜它的密钥位置或文件位置没有在某处被拾取,但不确定还可以尝试什么?结果表明,即使应用程序池使用的是特定用户,并且我在检查底层进程调用时在该用户的appdata文件夹中设置了密钥,但它实际上是在尝试从默认用户拾取密钥轮廓不确定这是IIS配置还是类似的配置,但将keys和pgp文件夹移动到此appdata是否有效