我正在尝试创建自定义的webpart。要实现错误处理,我想写入事件日志。为此,我正在尝试使用以下代码;
protected void btnExceptionTester_Click(object sender, EventArgs e)
{
try
{
throw new Exception("this is a test");
}
catch (Exception ex)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
EventLog.WriteEntry("TestWebpart", ex.ToString(), EventLogEntryType.Error);
});
}
}
当我尝试执行此代码时,我收到一个sharepoint错误页面(未处理的异常)。当我查看事件日志时,我看到以下消息; “不允许请求注册表访问”。
我在完全信任级别下运行(仅用于测试)。有人能指出我需要写什么样的特权才能写入事件日志?还是有另一种方法吗?
帮助大大帮助!
答案 0 :(得分:8)
我没有尝试过写入Windows事件日志,但作为替代方法,您可以使用以下内容写入12个配置单元中的SharePoint日志:
Microsoft.Office.Server.Diagnostics.PortalLog.LogString("your message here!");
希望这有帮助
伊恩
答案 1 :(得分:1)
更新
写入事件日志需要在Web部件中提升权限:
SPSecurity.RunWithElevatedPrivileges(delegate { EventLog.WriteEntry(...
以下权限:
HKLM \系统\ CurrentControlSet \服务\事件日志\ YourWebPartLog
我认为是你悲伤的原因。对此有哪些权限与应用程序池的权限?
答案 2 :(得分:1)
SharePoint中的EventLog条目:
对于WebParts记录12个配置单元中存在的ULS日志中的错误。
对于SharePoint应用程序页面,请查看事件日志中的错误。
所有其他列表和库相关的错误仅在ULS日志中记下。
由于
答案 3 :(得分:0)