对路径“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);
}
}
}
}