【问题标题】:Access Virtual Directory in Another Web Application在另一个 Web 应用程序中访问虚拟目录
【发布时间】:2012-06-28 12:22:58
【问题描述】:

我在同一个解决方案中有两个 Web 应用程序项目(项目 A 和项目 B)。

我希望能够:通过项目A,在项目B目录的某处保存一个文件。

每当我使用 Server.MapPath 等时,它都会解析为项目 A 的虚拟目录,而不是 B 的虚拟目录。

根据我的阅读,我相信我应该可以将项目 B 的 URL 直接输入到 save 方法中。但是,目前这两个项目都没有部署。此外,我想利用他们在同一个解决方案上的事实。

TIA!

【问题讨论】:

    标签: asp.net directory virtual


    【解决方案1】:

    但如果您要保存文件,那么您不想访问虚拟目录;您想要实际(物理)目录。这意味着 Request.MapPath 是要走的路;您可以使用将 cross-app mapping 设置为 true 的重载。

    string pathToAppB = Request.MapPath("/AppBVirtualPath", Request.ApplicationPath, true);
    

    不过,您仍然需要知道应用程序 B 将部署到哪个虚拟路径;除非您部署到本地 IIS,否则您无法在本地进行测试。

    【讨论】:

    • 感谢您的回复。 :) 当你说我必须知道应用程序 B 的虚拟路径时,这是否意味着从 http 开始的整个事情?我想我真正关心的是其他开发人员在他们自己的机器上使用相同的解决方案(我们只是使用 tortoise svn)可能会将应用程序 B 部署在与我的机器不同的虚拟目录上。希望这很清楚,我不太擅长解释:)
    【解决方案2】:

    您可以将项目 A 和项目 B 的虚拟目录配置到磁盘上的同一目录。当您使用 Server.MapPath 从项目 A 保存文件时,它将被保存到该文件夹​​。然后当项目 B 尝试通过 url 访问文件时。虚拟目录将访问同一目录。

    为 web 项目配置虚拟目录:

    在视觉工作室:见this post

    在 IIS 中:请参阅 this tutorial

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 2014-12-07
      • 1970-01-01
      • 2011-03-18
      相关资源
      最近更新 更多