ASP.net C#多个web应用程序-一个文件上传目录

本文关键字:文件 一个 多个 net web 应用程序 ASP | 更新日期: 2023-09-27 18:21:45

我不知道为什么这对我来说是一个很难理解的概念。我正在努力解决以下问题,如有任何帮助,我们将不胜感激。

我有两个运行C#的ASP.net MVC 4应用程序。它们是两个单独的应用程序,一个用于面向公众的网站,另一个用于我们的管理端。我们之所以将两者分开,是因为它们是两个完全独立的设计和代码库,而且更容易管理。

这两个应用程序连接到一个SQL Server数据库实例。

我们在每个网站上都有一个文件上传功能,我正试图找到一种方法,将上传的文件存储在两个网站的一个公用目录中。

问题是,当上传文件时,我们会将图像位置存储在数据库中。

/上传/filename.png

我们使用以下函数来完成此操作。

Server.MapPath("~"+TempImage.ThumbnailLocation.Replace("TempUploads/","));

如何将两个站点的文件保存到服务器上的同一目录中,以便在数据库中保持所有映像路径不变

我需要能够从两个应用程序调用以下问题来删除图像。

if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(Path)))
{
     System.IO.File.Delete(HttpContext.Current.Server.MapPath(Path));
}

ASP.net C#多个web应用程序-一个文件上传目录

您可以在每个应用程序中创建一个虚拟目录。虚拟目录将指向单个物理路径。因此,您可以在两个站点的同一物理目录中上传和删除文件。

我通常使用BLOB存储,无论是亚马逊还是微软(以及许多其他供应商)的都非常便宜

这种方法更好,因为:

  • 它降低了单台服务器上硬件出现故障时数据丢失的风险
  • 由于资产是从CDN加载的,因此您的页面加载速度更快
  • 您可以重用任何应用程序中的文件,因为它们都在云中

这里有几个教程可以开始使用azure:

  • http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/
  • http://code.msdn.microsoft.com/windowsazure/How-To-Use-Azure-Blob-16882fe2

实现这一点的一种方法是使用虚拟目录-在IIS中,两个站点都可以配置为具有"/Uploads/"虚拟目录,并且它们都可以映射到硬盘驱动器上的同一位置。