行动方法
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
LogError("lok", "lok2", "lok3");
return View();
}
LogError方法
private void LogError(string transactionId, string sAmountPaid, string deviceId)
{
// Creating the source, which will generate error
if (!EventLog.SourceExists("MyApplication"))
{
//Creating log, where error will be logged
EventLog.CreateEventSource("MyApplication", "MyLog");
}
// Creating object of EventLog to log error
var myAppLog = new EventLog { Source = "MyApplication" };
//Writing error to log
myAppLog.WriteEntry(transactionId + sAmountPaid + deviceId);
}
当我运行主页时,它始终显示“错误。处理您的请求时出错。”。我怀疑这是由于无法创建“事件查看器”登录。当我运行时上面的代码在本地主机上工作正常。但是当我将它发布到Windows Server 2012上的IIS服务器时,它给出了上述错误。
我的问题:我应该在事件查看器上启用任何类型的创建日志权限。如果这样做怎么办?我的IIS正在使用Windows Server 2012。
答案 0 :(得分:3)
以前曾经问过这个问题。以下链接是针对该讨论的。
Writing to an event log in ASP.NET on Windows Server 2008 IIS7
您需要授予应用程序写入Windows事件日志的权限。
但是,由于几个原因,不推荐使用它。
登录Windows事件日志的替代方法:
答案 1 :(得分:1)
您需要管理员权限才能创建事件源,因为该名称必须是唯一的,并检查是否需要检查所有注册表项,包括安全性。我怀疑你想要你的IIS帐户本地管理员。 我们这样做是(对于桌面应用程序),我们的安装程序创建事件源(作为管理员),然后我们的应用程序只读取它的写入。