2017-04-04 136 views
0

我想共享位於同一臺計算機上並使用相同IIS管理屏幕配置的兩個網站之間的文件夾。在兩個網站之間共享文件夾

我已經嘗試了其他問題的解決方案,但我無法讓他們工作。

我曾嘗試以下:

  1. 我創建軟鏈接是這樣的:

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

我用一個軟鏈接而不是硬鏈接,因爲RD命令將只刪除軟鏈接而不是刪除文件夾中的文件。然後我可以重新部署我的網站,而不必擔心要刪除的圖像。

我懷疑這是出於安全原因,該文件夾不能在站點之間共享。

  • 我還試圖使這樣的文件夾:

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

  • 我也使用虛擬目錄配置嘗試。那也行不通。我懷疑它是因爲我試圖使用VB代碼而不是URL訪問文件夾。

  • 這是代碼的樣子:

    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之間共享相同文件夾的目標?

    注:我列出了這個堆棧,而不是服務器故障,因爲我懷疑這是一個問題,在我的代碼,阻止虛擬目錄工作。

    +0

    看看這個:http://stackoverflow.com/questions/275781/server-mappath-server-mappath-server-mappath -server-的MapPath。關於我的頭,我懷疑你對ServerMapPath的使用是如果不是THE問題的一部分。 –

    回答

    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) + "/" 
    
    +0

    好的,我會試試,但IIS的安全性不會阻止我讀取已部署應用程序之外的文件系統? [注:我是VB,IIS的新手,只是想幫助一位失去了IT人員的朋友而設置了它] –

    +0

    將文件夾安全性設置爲您想要的值。IUser是用戶匿名訪問您的網站時使用的帳戶。給IUser無論你需要什麼權利來做你想要的文件夾。 –

    +0

    令人驚訝的是IIS不會阻止你這樣做。反正也不是默認的。只要IUser有權訪問該文件夾,您的所有Web應用程序都可以訪問該文件夾。 – Robert

    相關問題