在两个网站之间共享文件夹

时间:2017-04-04 21:30:45

标签: vb.net iis

我正在尝试在同一台计算机上配置相同IIS管理屏幕的两个网站之间共享文件夹。

我在其他问题中尝试过这些解决方案,但我无法让它们发挥作用。

我尝试了以下内容:

  1. 我创建了这样的软链接:

    mklink /d C:\Site2\Images C:\Site1\Images

  2. 我使用了软链接而不是硬链接,因为rd命令只会删除软链接而不是删除文件夹中的文件。然后,我可以重新部署我的网站,而不必担心图像被删除。

    我怀疑出于安全原因,文件夹无法在网站之间共享。

    1. 我还尝试制作这样的文件夹:

      mklink /j C:\Site2\Images C:\Site1\Images

    2. 我也尝试过使用虚拟目录配置。那也行不通。我怀疑它是因为我试图使用VB代码而不是URL来访问文件夹。

    3. 这就是代码的样子:

      Public Shared Function Ck4Image(ByVal SubDir As String) As String
         Dim countfiles As String = ""
         Dim ckdir As String = HttpContext.Current.Server.MapPath("~/Images/") + Trim(SubDir) + "/"                     ' Set the path.
         Dim MyName = Dir(ckdir, vbDirectory)   ' Retrieve the first entry.
      
         If MyName = "" Then
            Ck4Image = ""
            Exit Function
         End If
         countfiles += SubDir & "|"
         For Each afile As FileInfo In New DirectoryInfo(ckdir).GetFiles("*.jpg")
            countfiles += afile.Name & "|"
         Next
         Ck4Image = countfiles
      End Function
      

      以下是我的问题:

      MapPath函数中的波形语法是什么?它不在我阅读的文档中。

      如何实现在Site1和Site2之间共享同一文件夹的目标?

      注意:我在堆栈上列出了这个而不是服务器错误,因为我怀疑我的代码中存在阻止虚拟目录工作的问题。

1 个答案:

答案 0 :(得分:0)

我认为你这里的事情过于复杂。你真的不需要使用MapPath。

我对我们的网站所做的是使用web.config中的appSettings来定义多个Web应用程序中的共享文件路径。

<appSettings>
  <add key="IMAGE_DIR" value="C:\shared_images\" />
</appSettings>

然后您可以轻松地在代码中引用路径:

Dim ckdir As String = AppSettings("IMAGE_DIR") + Trim(SubDir) + "/"