草庐IT

9.20Leetcode记录

全部标签

c# - 是否可以记录谁启动或停止了 Windows 服务?

我有一些用C#编写的Windows服务。当有人停止或启动服务时,我希望能够确定是谁并记录该信息。我尝试记录Environment.UserName,但即使在我的本地计算机上,它的计算结果也是SYSTEM。此外,目前这些服务正在Windows2000服务器上运行。 最佳答案 在系统选项卡上的事件查看器(控制面板|管理工具|事件查看器)中,服务控制管理器记录启动和停止每个事件的人员。我刚刚自己对此进行了测试并查看了结果。这让我想到了两件事:您可以在事件发生时从服务控制管理器中查询或Hook这些事件,或者您绝对可以只查询事件查看器的“系统

c# - 为什么 Entity Framework 需要 30 秒来加载记录,而生成的查询只需要 1/2 秒?

下面的executeTime第一次是30秒,下次执行同一组代码时是25秒。在SQLProfiler中观察时,我立即看到一个登录,然后它就在那里停留了大约30秒。然后,只要运行select语句,应用程序就会完成ToList命令。当我从ManagementStudio运行生成的查询时,数据库查询只需要大约400毫秒。它返回14行和350列。看起来将数据库结果转换为实体所花费的时间非常短,以至于不明显。那么在进行数据库调用之前的30秒内发生了什么?如果EntityFramework这么慢,我们不可能使用它。有没有我做错了什么或者我可以改变什么来显着加快速度?更新:好吧,如果我使用编译查询,第

c# - 在 log4Net 中关闭记录器实例的正确方法

我有一个类,我为其每个实例创建了一个新的记录器,并为其附加了一个缓冲区附加程序和一个动态附加程序。一切都在运行时完成,没有从配置文件中提取任何信息。现在要在类的自定义处置方法中释放资源,我需要关闭该特定记录器并释放其所有附加资源以避免任何内存泄漏。目前我一直在做的是至少刷新文件附加程序并写入所有日志信息,但既不会释放对该特定日志文件的锁定,也不会释放其任何资源。关闭记录器而不关闭其他正在处理的事件记录器的正确方法是什么log4net.ILoglog=log4net.LogManager.GetLogger(loggerName);foreach(IAppenderiappinlog.L

c# - 在哪里可以记录 ASP.NET Core 应用程序的启动/停止/错误事件?

在旧的ASP.NET中,在Global.asax.cs类中,我会记录应用程序启动、停止和抛出未处理异常的时间:Application_Start()Application_End()Application_Error()如何在ASP.NETCore中执行相同的操作?它有一个Startup类,但它用于配置。我在哪里Hook到应用程序的启动/停止/错误事件? 最佳答案 注意:对于.NETCore3.0或更高版本,此答案已过时。参见thisanswer相反。您需要使用Microsoft.AspNetCore.Hosting.IApplic

c# - 将 100,000 多条记录插入 DocumentDB 的最快方法

如标题所示,我需要以编程方式将100,000多条记录插入到DocumentDb集合中。这些数据将用于稍后创建报告。我正在使用AzureDocumentsSDK和存储过程来批量插入文档(请参阅问题Azuredocumentdbbulkinsertusingstoredprocedure)。以下控制台应用程序显示了我如何插入文档。InsertDocuments生成500个测试文档以传递给存储过程。main函数调用了10次InsertDocuments,总共插入了5000个文档。运行此应用程序会导致每隔几秒插入500个文档。如果我增加每次调用的文档数量,我就会开始出现错误和丢失文档。谁能推荐

c# - Entity Framework - 打印 EntityValidationErrors 以记录

打印日志时出现以下错误Message:Validationfailedforoneormoreentities.See'EntityValidationErrors'propertyformoredetails.;StackTrace:atSystem.Data.Entity.Internal.InternalContext.SaveChanges()EntityValidationErrors对象包含不同节点中的完整详细错误。打印它的最佳方法是什么? 最佳答案 更简洁的语法:catch(System.Data.Entity.Val

c# - 为什么尾随 %20(在本例中为有效数据)会终止 asp.net mvc 路由

执行以下Controller操作publicActionResultNextBySURNAME(intid,stringdata){//codetoprocessthedataandedittheidaccoringlynotwrittenyetreturnRedirectToAction("Edit",new{id=id});}如果我调用它/Mycontroller/NextBySURNAME/12/Smith%20Simon然后它工作正常(在这种情况下编辑记录12)但是/Mycontroller/NextBySURNAME/12/Smith%20给我一​​个404现在我知道在某些情

c# - 如何使用 Entity Framework 更新特定记录的一个字段?

我想更新一个人的家人,他的名字叫pejman。这是我的对象类:publicclassPerson{publicintId{get;set;}publicstringFirstName{get;set;}publicstringLastName{get;set;}publicDateTimeBirthDate{get;set;}publicboolIsMale{get;set;}publicbyte[]Image{get;set;}publicbyte[]RowVersion{get;set;}publicvirtualPersonParent{get;set;}publicvirtua

c# - 每 20 秒调用一次方法的最有效方法是什么

我想调用一个方法,每20秒传递一个参数,例如publicvoidProcessPerson(IPerson人)我一直在阅读不同的Timer选项,想知道是否有人可以推荐最有效的方法来做到这一点?另外,有没有办法让参数保持强类型而不是使用object然后必须转换为IPerson?感谢您的帮助。 最佳答案 ASystem.Threading.Timer是你需要的:Providesamechanismforexecutingamethodatspecifiedintervals.UseaTimerCallbackdelegatetospec

c# - 使用日志记录框架有什么意义?

我想我可能忽略了为您的应用程序提供日志记录框架的要点。在所有的小应用程序中,我总是编写一个小的“日志记录”类,并将日志消息传递给其中的一个方法,该方法被写入一个文件。像log4net这样的第3方日志记录框架的目的是什么?日志写入操作是线程安全的还是我遗漏了什么? 最佳答案 这是一个很好的问题。第一个原因是“为什么不呢?”如果您使用的是日志记录框架,那么您将获得使用已打包的东西的可维护性优势。第二个原因是日志记录是微妙的。不同的线程、session、类和对象实例都可能在日志记录中发挥作用,您不希望必须在运行中解决这个问题。第三个原因是