我正在asp.net中开发一个内部网webapp,它需要存储用户个人资料图像。
@edit:webapp应该同时在两个不同的Web服务器上运行。
我的问题是,最好的方法是什么?使用配置文件保存照片(我正在使用SqlProfileProvider)或将其上传到文件系统并只保存配置文件中的链接?
我理解从一个操作到另一个操作的性能差异,但我的内部网将被几百个用户使用,我非常希望将所有数据存储到一个地方(例如,使备份数据更容易)。 / p>
假设我将存储到数据库中的数据,还有另外两个问题:
a)我应该使用哪种类型来保存照片?字节[] ???
b)我应该创建一个处理程序来显示图像,还是有更简单的方法?
答案 0 :(得分:2)
考虑数据库存储的唯一原因是在Web场方案中。如果您只有一台Web服务器,则使用文件系统更快更容易,只需在配置文件中存储图像路径。
答案 1 :(得分:1)
我目前正在数据库中使用Image字段来存储图像,但是,查看this documentation附带的警告,我想我应该转移到VarBinary。
然后我正在使用HttpHandler按照要求提供图像(尽管我的网站的最新版本在图像控制器上也有一个MVC文件操作处理程序,它可以执行相同的操作)。
我的处理程序的一个例子可以在这个答案中看到:
答案 2 :(得分:0)
备份应该包括你的网站文件夹,所以我认为不使用文件系统和IIS没有明确的优势 - 存储和提供文件。
为什么要解决文件系统的抽象问题,完成IIS和MSSQL之间的所有线路流量,代码开销等等,以避免备份文件夹?