小编Bri*_*ian的帖子

如何在.NET中打开已保存的事件日志存档?

我使用System.Diagnostics.EventLog来查看本地计算机上的日志.但是,我想打开一个保存的事件日志存档(.evt或.evtx)并查看保存文件中包含的日志.我只需要查看与文件中的日志相关联的时间戳,消息,来源等.这可以用C#完成吗?

c# file event-log

12
推荐指数
1
解决办法
6759
查看次数

read_some/write_some和receive/send之间的区别?

我开始使用Boost Asio的TCP套接字.是什么区别read_somereceive与之间有什么区别write_somesend?谢谢!

c++ boost boost-asio

12
推荐指数
2
解决办法
3937
查看次数

提升Asio message_flags

我最近开始与Boost Asio合作.我注意到TCP套接字receive方法接受message_flags作为参数.但是,我在message_flags中找到的文档只说它是一个整数而没有指定有效值.可以分配给message_flags的值是什么?它们是什么意思?

boost tcp boost-asio

11
推荐指数
1
解决办法
6040
查看次数

使用.NET远程读取事件日志

我想阅读远程计算机上的事件日志以检查测试期间的错误.这是一些相关的代码:

public bool CheckEventLogs(DateTime start)
{
  EventLog myEventLog = new EventLog("CustomLog", "ServerName");
  bool errorFound = false;
  foreach (EventLogEntry entry in myEventLog.Entries)
  {
    if (entry.EntryType == EventLogEntryType.Error && entry.TimeGenerated >= start)
    {
       Console.WriteLine("Error in Event Log:\n" + entry.Message + "\n");
       errorFound = true;
    }
  }
  return errorFound;
}
Run Code Online (Sandbox Code Playgroud)

目前,此代码抛出异常(尝试执行未经授权的操作).根据MSDN,我需要EventLogPermission,但我一直在努力寻找如何使用此权限的任何示例.有没有人有如何做到这一点的例子?

编辑:对评论的回应

感谢大家的评论 - 这里是要求的其他信息:

foreach声明中抛出异常.具体来说,当逐步执行代码时,in它突出显示在步骤之后抛出.似乎我能够创建事件日志对象,但我无法访问事件日志中的条目.

我的帐户没有权限读取目标系统上的事件日志,但我有一个帐户的凭据.通过事件查看器手动连接时,可以选择以另一个用户身份进行连接.手动完成后,我的代码运行没有问题.但是,每次运行此程序时,我都不能依赖它.我需要的是一种以编程方式作为另一个用户连接的方法.我认为EventLogPermission这样做是可行的,但也许有另一种方式.如果有人知道如何以C#中的不同用户身份连接到远程日志,那正是我想要的.

.net c# permissions event-log

10
推荐指数
2
解决办法
2万
查看次数

打印标志枚举作为单独的标志

我有一个像这样定义的标志枚举:

[Flags]
public enum MyEnum
{
    None =     0x00,
    Choice1 =  0x01,
    Choice2 =  0x02,
    Choice3 =  0x04,
    Default =  Choice1 | Choice2,
    All =      Default | Choice3
}
Run Code Online (Sandbox Code Playgroud)

我想要一种方法来打印出包含哪些标志MyEnum.Default.在这种情况下,我希望输出类似于"Choice1,Choice2".

简单打印的问题MyEnum.Default.ToString()是当我想要"Choice1,Choice2"时输出将是"默认".

这是一个选项,但如果我使用它,我每次更改枚举时都必须更新打印.

((StudyData.Choice1 & StudyData.Default) == StudyData.Choice1 ? StudyData.Choice1.ToString() : "") + ", " +
((StudyData.Choice2 & StudyData.Default) == StudyData.Choice2 ? StudyData.Choice2.ToString() : "") + ", " +
((StudyData.Choice3 & StudyData.Default) == StudyData.Choice3 ? StudyData.Choice3.ToString() : "")
Run Code Online (Sandbox Code Playgroud)

有没有人有更清洁的方式这样做?理想情况下,我想要一种打印出包含的标志的方法,MyEnum.Default而不必在每次添加新标志或更改默认值时更改打印代码.

谢谢!

c# enums flags

9
推荐指数
2
解决办法
6975
查看次数

将其他项目的设置添加到app.config

我在C#中编写了一个带有设置文件的应用程序(用于在编译时创建app.config文件).此应用程序使用C#DLL,它也有一个设置文件.

我从这篇文章中读到以下内容:

如果您构建一个引用您的DLL的项目,您可以将相同的.settings文件添加到该项目,这些设置将显示在app的app.config文件中,DLL将能够读取这些值.如果这些值不在app.config中,则dll将回退到默认值.

我观察到DLL存储默认值,因为它表明它应该.我右键单击了我的应用程序项目并选择了Add Existing Item.然后我从我的DLL项目中找到了设置文件,并将其添加到应用程序的项目中.我希望DLL设置文件和应用程序设置文件都包含在应用程序的app.config文件中.这样,应用程序的app.config文件将覆盖存储在DLL中的默认值.不幸的是,这种情况并没有发生.

所以,我的问题是在将DLL项目中的设置添加到应用程序项目之后,如何让应用程序项目识别该文件并在编译时将其设置添加到app.config文件中?

c# dll settings app-config

5
推荐指数
1
解决办法
1826
查看次数

标签 统计

c# ×4

boost ×2

boost-asio ×2

event-log ×2

.net ×1

app-config ×1

c++ ×1

dll ×1

enums ×1

file ×1

flags ×1

permissions ×1

settings ×1

tcp ×1