我有一个场景,我需要从一个 Web 应用程序上传文件并在另一个 Web 应用程序中使用它。我的设置如下。

  • 一台服务器在 IIS 中托管两个 Web 应用程序 - 两者都是 ASP.NET
  • 其中一个应用程序用于管理另一个应用程序以及更多内容
  • 我需要从这个管理应用程序上传一个文件,通过 DAL 将路径保存在数据库中,然后从其他 Web 应用程序访问该文件,这将提供文件下载
  • 我将文件保留在磁盘上,仅保留数据库中的路径

那么,我可以在哪里以及如何上传该文件,以便可以从两个 Web 应用程序访问该文件?我应该使用服务还是有其他方式?
以下是我发现的一些相关问题,但我认为它们并没有涵盖我的特定场景:
如何处理文件上传到专用图像服务器?
如何将文件上传到 WCF 服务?

有帮助吗?

解决方案

由于两个应用程序都在同一服务器上,因此这应该很简单:

  • 将上传的文件保存在服务器上的某个地方。
  • 在任何需要公开指向物理路径的文件的应用程序中创建一个虚拟目录。
  • 将虚拟路径保存在数据库中以提高灵活性

其他提示

您可以在每个应用程序中设置一个新的虚拟目录,该目录指向服务器上要将文件上传到的同一文件夹。假设您在 c: 上创建了一个新文件夹驱动器称为“上传”,即c:\上传。然后在 IIS 中设置一个名为“uploads”的新虚拟目录,该目录指向每个 Web 应用程序的 c:\uploads。这应该允许两个站点访问这些文件。

请问为什么不将文件保存在数据库中?这将使传递它变得更容易。

假设您放入数据库中的文件路径可以从非管理 Web 应用程序访问(听起来确实如此),则该文件只需转到两个应用程序都有权访问的位置即可。只有管​​理应用程序需要具有写入权限。

您可以在 IIS 管理控制台的网站属性 > 目录安全下配置 IIS 网站将运行的用户帐户。然后确保设置适当的目录权限。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top