我需要读取Web服务中的csv文件,
下面是我到目前为止的代码:
[WebMethod]
public List<string> getIdentifiants()
{
List<string> listA = new List<string>();
List<string> listB = new List<string>();
using (var fs = File.OpenRead(@"C:\Users\stag01\Desktop\identifiants.csv"))
using (var reader = new StreamReader(fs))
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(';');
listA.Add(values[0]);
listB.Add(values[1]);
}
}
return listA;
}
但是当我尝试运行它时,我得到了这个错误:
system.security.securityException:echec de la demande d'autorisation de type'system.security.permissions.FileOpermission,mscorlib,version=2.0.0.0,culture=neutral,publicKeyToken=b77a5c561934e089'。
àsystem.security.CodeAccessSecurityEngine.check(对象请求,StackCrawlMark&;stackMark,Boolean
有谁能帮帮我吗?
您需要读取权限。如果在本地调试,则以管理员visual stuio身份运行。如果正在运行服务器,您需要在ISS上设置读取权限,您的服务应用程序池。
而且这个代码是错误的。只能执行一个用户。2客户端无法同时打开此文件。您需要使用锁来解决这个问题。
[WebMethod]
public List<string> getIdentifiants() {
List<string> listA = new List<string>();
List<string> listB = new List<string>();
lock (this) {
using (var fs = File.OpenRead(@"C:\Users\stag01\Desktop\identifiants.csv"))
using (var reader = new StreamReader(fs)) {
while (!reader.EndOfStream) {
var line = reader.ReadLine();
var values = line.Split(';');
listA.Add(values[0]);
listB.Add(values[1]);
}
}
}
return listA;
}