[問題] 在.NET MVC的控制器中操作網芳分享資料夾

看板C_Sharp作者 (還在想)時間7年前 (2017/06/20 20:17), 7年前編輯推噓0(008)
留言8則, 1人參與, 最新討論串1/1
在.NET MVC(C#)中,想存取網芳資料夾的內容 資料夾已在IIS作為網站根目錄下的一個應用程式掛上 (使用虛擬目錄問題更多後述) 然後該資料夾有自己的存取帳號,這也有寫在應用程式的存取帳號中 假如在網址直接填該虛擬目錄的位置,可以顯示照片 為了檢查當案是否存在而寫在控制器中的File.Exists()方法卻只會回傳否 掛上網芳目錄前使用本機資料夾測試功能是正確的,所以猜想是權限或IIS設定要調整 只是一直沒試到正確的方法 請問有沒有人能不吝分享設定與存取網芳檔案的經驗作為參考呢? 謝謝! 不知為何用虛擬目錄來掛的話,就會連在瀏覽器輸入相對位置也看不到圖片 什麼都不改直接轉換成應用程式後,瀏覽器就看的到了怪怪 不過File.Exists()兩邊都一樣偵測不了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.45.202.49 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1497961077.A.8C9.html

06/21 13:15, , 1F
你檢查檔案是否存在給的路徑,是絕對還是相對路徑?
06/21 13:15, 1F

06/21 13:20, , 2F
Server.MapPath("/虛擬目錄") 這樣試看看?
06/21 13:20, 2F

06/21 13:21, , 3F
之前實作 FileServer 掛虛擬目錄存取用上面方法可行
06/21 13:21, 3F

06/21 13:21, , 4F
至於權限的話,你可以嘗試虛擬目錄用"特定使用者"登入?
06/21 13:21, 4F

06/21 13:24, , 5F
如果當前取不到 Server.MapPath的話,可以改用
06/21 13:24, 5F

06/21 13:25, , 6F
HostingEnvironment.MapPath ( https://goo.gl/KuER1Z )
06/21 13:25, 6F
我是使用Server.MapPath("~/Uploads/pic/123.jpg")這種語法 回傳值是像 \\FileServer\pic\123.jpg 這樣的結果,以絕對路徑來說這樣應該對吧... 我確定檔案存在,因為網頁上相對路徑就能看到圖片 在C底下建一個資料夾然後權限設的跟網芳的一樣(也有設使用者帳號密碼) 然後在IIS上用一樣的方法掛上後 File.Exists() 可以發揮作用偵測到檔案存在 一模一樣的設定改掛到網芳就失效了,苦惱 ※ 編輯: Peruheru (220.134.18.8), 06/21/2017 17:20:26

06/21 18:11, , 7F
那你試看看能不能寫入檔案到網芳資料夾
06/21 18:11, 7F

06/21 18:13, , 8F
有可能是iis讀網芳圖片跟你File.Exists() 的身分不同(?)
06/21 18:13, 8F
寫不進去,或許真的是權限不相同 我有參考鳥哥文章在Web.config內的system.web區段加上下面這行敘述: <identity impersonate="true" password="xxxx" userName="oooo" /> 結果好像沒什麼差別,這跟網站是另一個站台底下的應用程式這點有關嗎? ※ 編輯: Peruheru (220.134.18.8), 06/23/2017 13:14:30 結果我那行打錯字了,修正就可以上傳了,檢查存在也生效了,感謝幫助!! ※ 編輯: Peruheru (220.134.18.8), 06/23/2017 13:39:05
文章代碼(AID): #1PIH9rZ9 (C_Sharp)