看板 C_Sharp 關於我們 聯絡資訊
在.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
awwseed: 你檢查檔案是否存在給的路徑,是絕對還是相對路徑? 06/21 13:15
awwseed: Server.MapPath("/虛擬目錄") 這樣試看看? 06/21 13:20
awwseed: 之前實作 FileServer 掛虛擬目錄存取用上面方法可行 06/21 13:21
awwseed: 至於權限的話,你可以嘗試虛擬目錄用"特定使用者"登入? 06/21 13:21
awwseed: 如果當前取不到 Server.MapPath的話,可以改用 06/21 13:24
awwseed: HostingEnvironment.MapPath ( https://goo.gl/KuER1Z ) 06/21 13:25
我是使用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
awwseed: 那你試看看能不能寫入檔案到網芳資料夾 06/21 18:11
awwseed: 有可能是iis讀網芳圖片跟你File.Exists() 的身分不同(?) 06/21 18:13
寫不進去,或許真的是權限不相同 我有參考鳥哥文章在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