0

我们正在实施一个COTS包,允许您将文件从Thick-Client(通过HTTP Web服务)上载到SQL 2008,其中文件存储在VarBinary(Max)中。该解决方案将在基于Microsoft的环境中运行。在通过HttpHandler或HttpModule上传到SQL过程中病毒扫描文件是一个坏主意吗?

我们有要求在上传过程中“病毒扫描文件”。

我想知道是否将此作为来自HttpHandler或HttpModule的API调用是一个坏主意或不是(甚至是可行的)。有没有人做过这个?

+0

将文件存储在文件系统上,只保留数据库中的路径更为常见。这样,AV将在复制到磁盘时立即扫描这些文件,并且如果AV检测到任何线程,则可以阻止将它们的路径存储在数据库中。 – Farzan

+0

@Farzan - COTS系统不以这种方式工作,所以只有让他们修改系统的工作方式才是选择。 –

回答

1

这应该是可能的,支持批处理模式每一个杀毒软件,这是一个例子,如何用Security Essentials的服务器上做:

Use Microsoft Security Essentials in C# when downloading email attachment

我对此的唯一要注意的是有队列中的待处理文件和进程文件逐一排队,以便在处理并发请求时不会运行更多的防病毒实例。这可能会减慢你的服务器。

+0

谢谢。我猜想这种方法隐藏了很多细节。问题:当你说一个队列时你暗示了一个不同步的方法?理想情况下,我希望将此扫描插入现有流程,以便我们不影响COTS包当前的工作方式(授予扫描可能会使“上传”时间更长)。 –

+0

按队列排列我的意思是一个单独的队列,其中项目逐一扫描,以便两次或多次扫描不会同时发生。 –