C# 在两个mvc项目之间共享公共映像文件夹

C# 在两个mvc项目之间共享公共映像文件夹,c#,asp.net-mvc,image,asp.net-mvc-4,visual-studio-2015,C#,Asp.net Mvc,Image,Asp.net Mvc 4,Visual Studio 2015,我有两个MVC应用程序-管理员和用户。管理员将上传图像,然后在用户应用程序中显示。图像路径将存储在数据库中,由两个应用程序共享,用户应用程序将使用该路径获取图像。如何使Visual Studio中的两个应用程序都可以访问图像文件夹,以及站点上载到服务器后如何访问图像文件夹?如果向用户应用程序提供完整的url,它将获取图像,而无需其他配置。但请确保这两个应用程序都在运行,并且您提供的是完整的URL而不是文件路径 [更新] 这将有助于: Http://domain.com/folder/file.e

我有两个MVC应用程序-管理员和用户。管理员将上传图像,然后在用户应用程序中显示。图像路径将存储在数据库中,由两个应用程序共享,用户应用程序将使用该路径获取图像。如何使Visual Studio中的两个应用程序都可以访问图像文件夹,以及站点上载到服务器后如何访问图像文件夹?

如果向用户应用程序提供完整的url,它将获取图像,而无需其他配置。但请确保这两个应用程序都在运行,并且您提供的是完整的URL而不是文件路径

[更新] 这将有助于:

Http://domain.com/folder/file.ext
这是行不通的:

D:\\Hosting\domain\folder\file.ext

这实际上是两个独立的问题:

  • 如何在生产环境中共享文件夹

    如果站点位于同一台服务器上,那么您可以将共享映像几乎放在同一台服务器上的任何位置。如果它们位于不同的服务器上,则需要将两台服务器上的网络位置映射到映像所在的位置。在任何一种情况下,您都将在两个站点上的IIS中创建一个指向该共享位置的虚拟目录

  • 如何在开发中共享文件夹(即Visual Studio)

    这有点棘手。基本上,您需要以与生产中相同的方式处理它,但问题是iisexpress不如完整的IIS透明。我在Visual Studio 2012和2013中采用了以下方法,但上一次尝试是在2015年,它不再有效。不过,这可能已经解决了,因为已经有一段时间了。不管怎样,这几乎是你唯一的选择

  • 右键单击解决方案浏览器窗格中的解决方案,然后选择
    Add>New Website…
  • 单击结果窗口上的
    浏览…
    按钮
  • 单击
    本地IIS
    选项卡
  • 在列表中找到要使用共享映像目录的第一个站点,然后单击它以高亮显示
  • 然后,在窗口的右上角,单击看起来像一个带星星的文件夹的图标。如果你在上面停留一秒钟,它会说“创建新的虚拟目录”
  • 在“别名:”中,输入应用程序中的路径部分。例如,如果您想在
    http://localhost:12345/SharedImages
    ,然后输入
    SharedImage
    。但是,请确保您选择的内容不是项目中实际存在的目录
  • 对于“文件夹:”,请浏览到共享映像位于计算机上的物理目录
  • 取消选中
    创建IIS应用程序
    复选框
  • 单击
    OK
  • 对任何其他站点重复步骤4-9
  • 单击上一窗口上的
    取消
  • 在原始的
    添加新网站窗口
    上再次单击
    取消
    。(您实际上不会向解决方案中添加新网站。这只是访问可以创建此虚拟目录的位置的唯一方法。)
  • 此时,您应该返回到VisualStudio主窗口。实际上,您不会注意到项目/解决方案中的任何差异,因为这都是在IIS Express中完成的。但是,如果您浏览网站并尝试在虚拟目录下加载图像,您应该能够在浏览器中看到它,即:

     http://localhost:12345/SharedImages/foo.jpg
    
    如果看到图像,一切正常


    顺便说一句,我认为这两个应用程序可能位于相同或不同的服务器上。我建议您在Azure中使用blob存储。虽然这是一个很好的解决方案,但OP没有提及使用Azure,并且可能无法使用Azure。