1. 程式人生 > >對路徑“xxxxx”的訪問被拒絕。

對路徑“xxxxx”的訪問被拒絕。

serial 文件夾 reat summary 我們 在服務器 方法 directory ring

對路徑“D:\\Weixin\\WechatWeb\\wapMxApi\\JsonFile\\WaterPrice.json”的訪問被拒絕。

本地vs2013編譯調試是沒有問題的但是發布後就不能倍訪問,找了好久網上的資料各種

解決方法都有,單我的這個問題始終沒有解決。很迷。。。。

最後發現代碼寫得不對:

開始我並沒有 寫

System.IO.Directory.Exists(filePath)
這句話沒寫其實是很不對的,因為不過不去自己檢測創建文件路徑的話,那麽後果就是在發布的時候
每次發布你都要自己新建一個文件加。。。(自己好蠢)
加上文件路徑的判斷和創建然後發布在服務器上後,重新新建數據寫入文件;這時就發現
原來的文件和現在的文件的權限少了=====》 IUSR

所以我想代碼創建的文件加權限和手動創建的文件夾的角色權限是不一樣的

所以我們盡量避免(可能也只有我這樣)不去代碼創建文件路徑:







        /// <summary>
        /// 單個模型讀方法
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="filename"></param>
        /// <returns></returns>
        public static T ReadObjectByJson<T>(string filename)
        {

            if (!System.IO.Directory.Exists(filePath))
            {
                Directory.CreateDirectory(filePath);
            }
            string file = filePath + filename;

            using (FileStream fs = new FileStream(file, FileMode.OpenOrCreate)) {
                using (StreamReader sr = new StreamReader(fs))
                {
                    try
                    {
                        JsonSerializer serializer = new JsonSerializer();
                        using (JsonReader reader = new JsonTextReader(sr)) {
                            return serializer.Deserialize<T>(reader);                      
                        }
  
                    }
                    catch (Exception ex)
                    {
                        ex.Message.ToString();
                        return default(T);
                    }
                }
            }
        }

  

對路徑“xxxxx”的訪問被拒絕。