从 asp.net c# 应用程序 "Code 2 - If some error preventing further execution is discover " 调用 Sav32Cli.exe
Calling Sav32Cli.exe from asp.net c# application "Code 2 - If some error preventing further execution is discover "
我已经将 Sav32Cli.exe 集成到我的 asp.net c# 应用程序中,它在我的本地机器上运行良好,但是当我们将它移动到测试服务器上时,我收到以下错误 "Code 2 - If some error preventing further execution is discover "
场景是如果只有 1 个人执行 activity 它工作正常但并发连接执行相同 activity 那么我在某些连接中遇到此错误。
实际情况:我们有用户上传 pdf 文件的页面,一旦文件上传到服务器,我们就会通过 sop-hos 执行扫描,当多个用户执行相同的操作时 activity 我我收到以下错误:代码 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 应用程序中执行。所以模拟技术帮助我解决了这个问题。
这个 link 帮助我解决了这个问题:Click Here
您是否考虑过为此使用 SAVIDI - https://www.sophos.com/medialibrary/PDFs/partners/sophossavdidsna.ashx
SAV32CLI 需要很长时间才能将所有病毒数据加载到内存中,我预计大约需要 5 秒。当您扫描硬盘时这很好,但每个文件会相当慢。如果您要启动多个实例,那么它也会消耗大量内存。
如果您的吞吐量需要提高,我建议您查看 SAVIDI。在这种情况下,有一个服务会在启动时加载一次病毒数据,然后您可以要求它扫描 file/directory.
这个 post 和线程中的附件可以帮助您:
https://community.sophos.com/products/endpoint-security-control/f/sophos-endpoint-software/9420/sophos-sav-di-icap-code-sample
此致。
我已经将 Sav32Cli.exe 集成到我的 asp.net c# 应用程序中,它在我的本地机器上运行良好,但是当我们将它移动到测试服务器上时,我收到以下错误 "Code 2 - If some error preventing further execution is discover "
场景是如果只有 1 个人执行 activity 它工作正常但并发连接执行相同 activity 那么我在某些连接中遇到此错误。
实际情况:我们有用户上传 pdf 文件的页面,一旦文件上传到服务器,我们就会通过 sop-hos 执行扫描,当多个用户执行相同的操作时 activity 我我收到以下错误:代码 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 应用程序中执行。所以模拟技术帮助我解决了这个问题。
这个 link 帮助我解决了这个问题:Click Here
您是否考虑过为此使用 SAVIDI - https://www.sophos.com/medialibrary/PDFs/partners/sophossavdidsna.ashx
SAV32CLI 需要很长时间才能将所有病毒数据加载到内存中,我预计大约需要 5 秒。当您扫描硬盘时这很好,但每个文件会相当慢。如果您要启动多个实例,那么它也会消耗大量内存。
如果您的吞吐量需要提高,我建议您查看 SAVIDI。在这种情况下,有一个服务会在启动时加载一次病毒数据,然后您可以要求它扫描 file/directory.
这个 post 和线程中的附件可以帮助您: https://community.sophos.com/products/endpoint-security-control/f/sophos-endpoint-software/9420/sophos-sav-di-icap-code-sample
此致。