Sav32Cli.exe を asp.net c# アプリケーションに統合し、ローカル マシンで正常に動作していますが、テスト サーバーに移動すると、「コード 2 - 実行を妨げるエラーが検出された場合」というエラーが発生します。
シナリオは、1 人だけがアクティビティを実行すると正常に動作しますが、同時接続が同じアクティビティを実行すると、一部の接続でこのエラーが発生します。
実際のシナリオ: ユーザーが pdf ファイルをアップロードするページがあり、ファイルがサーバーにアップロードされるとすぐに、sop-hos を介してスキャンを実行し、複数のユーザーが同じアクティビティを実行すると、次のエラーが発生します: コード 2 -さらなる実行を妨げる何らかのエラーが発見された場合。ですから、このエラーを回避してアプリケーションにスキャンを正常に実装するにはどうすればよいか、皆さんから知りたいと思います。
以下は、スキャンをアプリケーションに統合するために作成したコードです。
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
try
{
string filePath = sFileDetails.DirectoryName + "\\" + sFileName;
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "C:\\Program Files (x86)\\Sophos\\Sophos Anti-Virus\\sav32cli.exe";
startInfo.Arguments = String.Format(@" -ss ""{0}""", filePath);
process.StartInfo = startInfo;
process.StartInfo.Verb = "runas";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.Start();
string output = process.StandardOutput.ReadToEnd();
StringBuilder objStrBuilder = new StringBuilder();
objStrBuilder.AppendLine("Status " + output.ToString());
int i = process.ExitCode;
objStrBuilder.AppendLine("Code " + i.ToString());
File.WriteAllText(sFileDetails.DirectoryName + "\\" + Convert.ToString(System.Guid.NewGuid()) + ".txt", Convert.ToString(objStrBuilder));
if (i > 0)
{
return false;
}
return true;
}
catch (Exception ex)
{
return false;
}
finally
{
process.Close();
process.Dispose();
}