Вызов Sav32Cli.exe из приложения asp.net C# "Код 2 - если обнаружена какая-то ошибка, препятствующая дальнейшему выполнению"
Я интегрировал Sav32Cli.exe в мое приложение asp.net C# и он нормально работает на моем локальном компьютере, но когда мы перемещаем его на сервер тестирования, я получаю следующую ошибку "Код 2 - если обнаруживается какая-то ошибка, препятствующая дальнейшему выполнению"
Сценарий: если только один человек выполняет действие, оно работает нормально, но параллельное соединение выполняет то же действие, тогда я получаю эту ошибку для некоторых соединений.
Фактический сценарий: у нас есть страница, на которой пользователи загружают файл 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();
}
2 ответа
Sav32Cli.exe требует больше разрешений для выполнения в веб-приложении. Таким образом, техника подражания помогла мне решить эту проблему.
Эта ссылка помогла мне решить эту проблему: Нажмите здесь
Рассматривали ли вы использование SAVIDI для этого - https://www.sophos.com/medialibrary/PDFs/partners/sophossavdidsna.ashx
SAV32CLI займет много времени, чтобы загрузить все данные вируса в память, я ожидаю около 5 секунд. Это хорошо, когда вы сканируете жесткий диск, но для каждого файла это будет довольно медленно. Если вы запускаете несколько экземпляров, это также может привести к потере памяти.
Если ваша пропускная способность нуждается в улучшении, я бы посоветовал взглянуть на SAVIDI. В этом сценарии есть служба, которая загружает данные вируса один раз при запуске, и затем вы можете попросить его проверить файл / каталог.
Это сообщение и вложение в теме могут помочь вам: https://community.sophos.com/products/endpoint-security-control/f/sophos-endpoint-software/9420/sophos-sav-di-icap-code-sample
С уважением.