c# 读取 csv 文件 System.Security.SecurityException
c# reading csv file System.Security.SecurityException
我需要在我的网络服务中读取一个 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: Échec de la demande d'autorisation de type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
à System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
à System.Security.CodeAccessPermission.Demand()
à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
à System.IO.File.OpenRead(String path)
à WebApplication1.WS_stage_2017.getIdentifiants() dans \Nas-server\User Folder\stag01\Mes documents\Visual Studio 2017\Projects\WebApplication1\WebApplication1\WS_stage_2017.asmx.cs:ligne 31
有人可以帮我吗?
您需要读取权限。 运行 如果在本地调试,则作为管理员 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;
}
我需要在我的网络服务中读取一个 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: Échec de la demande d'autorisation de type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
à System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
à System.Security.CodeAccessPermission.Demand()
à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
à System.IO.File.OpenRead(String path)
à WebApplication1.WS_stage_2017.getIdentifiants() dans \Nas-server\User Folder\stag01\Mes documents\Visual Studio 2017\Projects\WebApplication1\WebApplication1\WS_stage_2017.asmx.cs:ligne 31
有人可以帮我吗?
您需要读取权限。 运行 如果在本地调试,则作为管理员 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;
}