C# 从asp.net c“应用程序”调用Sav32Cli.exe;代码2-如果发现了阻止进一步执行的错误;

C# 从asp.net c“应用程序”调用Sav32Cli.exe;代码2-如果发现了阻止进一步执行的错误;,c#,asp.net,antivirus,antivirus-integration,C#,Asp.net,Antivirus,Antivirus Integration,我已经在我的asp.net c#应用程序中集成了Sav32Cli.exe,它在我的本地计算机中运行良好,但当我们在测试服务器上移动它时,我收到以下错误“代码2-如果发现阻止进一步执行的错误” 这种情况是,如果只有一个人执行活动,它工作正常,但并发连接执行相同的活动,那么我会在某些连接中收到此错误 实际场景:我们有一个用户上传pdf文件的页面&一旦文件上传到服务器上,我们就通过sop hos执行扫描,当多个用户执行相同的活动时,我得到以下错误:代码2-如果发现阻止进一步执行的错误。所以我想从你们那

我已经在我的asp.net c#应用程序中集成了Sav32Cli.exe,它在我的本地计算机中运行良好,但当我们在测试服务器上移动它时,我收到以下错误“代码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();
}

Sav32Cli.exe需要更多权限才能在web应用中执行。所以模仿技术帮助我解决了这个问题


此链接帮助我解决了此问题:

您是否考虑过使用SAVIDI来解决此问题-

SAV32CLI将需要很长时间才能将所有病毒数据加载到内存中,我预计大约需要5秒钟。当你扫描你的硬盘时,这是很好的,但是每个文件的速度会相当慢。如果您要启动多个实例,那么这也将是一个相当大的内存消耗

如果您的吞吐量需要提高,我建议您考虑SAVIDI。在这个场景中,有一个服务在启动时加载病毒数据一次,然后您可以要求它扫描文件/目录

此帖子和帖子中的附件可以帮助您:


问候。

您应该联系sophos。