【发布时间】:2021-10-20 04:55:51
【问题描述】:
如何修复此错误:'IFeatureCollection 已被释放。在 Asp.net Core Mvc 中
我使用 Filesystem Watcher 来获取 Path 中文件的事件数据 一切正常,我在数据库中发送了跟踪信息,但是当我尝试在 OnChanged 方法中使用它们时,它们是会话值的 Adminid 和 roleid 导致了这个问题
这是我的控制器:
**public IActionResult RHManager()
{
ViewBag.Idadmin = int.Parse(HttpContext.Session.GetInt32("id").ToString());
ViewBag.RoleCreateur = int.Parse(HttpContext.Session.GetInt32("role_id").ToString());
var Idadmin = int.Parse(HttpContext.Session.GetInt32("id").ToString());
FileSystemWatcher watcher = new FileSystemWatcher();
//Mention the Path that you want to monitor file events.
watcher.Path = @"\\100.100.1.6\drh-m$";
watcher.IncludeSubdirectories = true;
watcher.NotifyFilter = NotifyFilters.Attributes |
NotifyFilters.CreationTime |
NotifyFilters.DirectoryName |
NotifyFilters.FileName |
NotifyFilters.LastAccess |
NotifyFilters.LastWrite |
NotifyFilters.Security |
NotifyFilters.Size;
watcher.Filter = "*.*";
//File System Events to listen them
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
// Starting monitoring the folder.
watcher.EnableRaisingEvents = true;
return View(watcher);
}
void OnChanged(object source, FileSystemEventArgs e)
{
TraceFileManager trace = new TraceFileManager();
trace.Time = DateTime.Now;
trace.Adminid = int.Parse(HttpContext.Session.GetInt32("id").ToString());
trace.Roleid = int.Parse(HttpContext.Session.GetInt32("id").ToString());
trace.Changedfile = e.Name;
trace.Seen = false;
trace.Etat = "En attente";
trace.Changetype = e.ChangeType.ToString();
_context.Add(trace);
_context.SaveChangesAsync();
}**
【问题讨论】:
标签: c# asp.net-core .net-core model-view-controller