作者Peruheru (還在想)
看板C_Sharp
標題[問題] 在.NET MVC的控制器中操作網芳分享資料夾
時間Tue Jun 20 20:17:54 2017
在.NET MVC(C#)中,想存取網芳資料夾的內容
資料夾已在IIS作為網站根目錄下的一個應用程式掛上
(使用虛擬目錄問題更多後述)
然後該資料夾有自己的存取帳號,這也有寫在應用程式的存取帳號中
假如在網址直接填該虛擬目錄的位置,可以顯示照片
為了檢查當案是否存在而寫在控制器中的File.Exists()方法卻只會回傳否
掛上網芳目錄前使用本機資料夾測試功能是正確的,所以猜想是權限或IIS設定要調整
只是一直沒試到正確的方法
請問有沒有人能不吝分享設定與存取網芳檔案的經驗作為參考呢?
謝謝!
不知為何用虛擬目錄來掛的話,就會連在瀏覽器輸入相對位置也看不到圖片
什麼都不改直接轉換成應用程式後,瀏覽器就看的到了怪怪
不過File.Exists()兩邊都一樣偵測不了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.45.202.49
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1497961077.A.8C9.html
1F:→ awwseed: 你檢查檔案是否存在給的路徑,是絕對還是相對路徑? 06/21 13:15
2F:→ awwseed: Server.MapPath("/虛擬目錄") 這樣試看看? 06/21 13:20
3F:→ awwseed: 之前實作 FileServer 掛虛擬目錄存取用上面方法可行 06/21 13:21
4F:→ awwseed: 至於權限的話,你可以嘗試虛擬目錄用"特定使用者"登入? 06/21 13:21
5F:→ awwseed: 如果當前取不到 Server.MapPath的話,可以改用 06/21 13:24
我是使用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
7F:→ awwseed: 那你試看看能不能寫入檔案到網芳資料夾 06/21 18:11
8F:→ 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