Я использую VS2005 C# 2.0 и SQL Server 2005.
Я ссылаюсь на это руководство по настройке Health Monitoring.
В конце руководства есть кнопка на Default.aspx и при_нажатии_на_кнопку, новая запись будет вставлена в мою таблицу SQL.
Однако, когда моя кнопка нажата, в таблицу не вставляется запись.
Я не знаю, в чем ошибка, так как нет никаких сообщений об ошибках, поэтому я полагаю, что единственным способом является метод проб и ошибок, где я ошибся.
P.S. Я не могу скомпилировать библиотеку классов MyWebEvents
, потому что нет вывода. В моем основном веб-приложении я добавил ссылку на DLL из папки bin моего MyWebEvents файла проекта. Является ли DLL, на которую я ссылался, действительной для использования, или есть шаг, который я пропустил при компиляции?
Ниже приведены коды, которые я выполнил, со ссылкой на сайт microsoft:
MyCriticalEvent.cs
в MyWebEvents библиотека классов:
namespace MyWebEvents
{
public class MyCriticalEvent : WebAuditEvent
{
private string userID;
private string authType;
private bool isAuthenticated;
public MyCriticalEvent(string msg, object eventSource, int eventCode)
: base(msg, eventSource, eventCode)
{
// Obtain the HTTP Context and store authentication details
userID = HttpContext.Current.User.Identity.Name;
authType = HttpContext.Current.User.Identity.AuthenticationType;
isAuthenticated = HttpContext.Current.User.Identity.IsAuthenticated;
}
public MyCriticalEvent(string msg, object eventSource, int eventCode,
int eventDetailCode)
: base(msg, eventSource, eventCode, eventDetailCode)
{
userID = HttpContext.Current.User.Identity.Name;
authType = HttpContext.Current.User.Identity.AuthenticationType;
isAuthenticated = HttpContext.Current.User.Identity.IsAuthenticated;
}
public override void FormatCustomEventDetails(WebEventFormatter formatter)
{
base.FormatCustomEventDetails(formatter);
formatter.AppendLine("User ID: " + userID);
formatter.AppendLine("Authentication Type: " + authType);
formatter.AppendLine("User Authenticated: " +
isAuthenticated.ToString());
formatter.AppendLine("Activity Description: Critical Operation");
}
}
}
Default.aspx.cs
в Main Web Application:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MyCriticalEvent testEvent = new MyCriticalEvent(
"Critical Operation Performed",
this,
WebEventCodes.WebExtendedBase + 1);
testEvent.Raise();
}
}
Web. config
в Main Web Applicatiion:
Table in my database:
Error raised in the Event log if SQL Connection is broken:
The following exception was thrown by the web event provider 'MySqlWebEventProvider' in the application '/TestLogSite' (in an application lifetime a maximum of one exception will be logged per provider instance):
Problem Summary: При нажатии button1
на Default.aspx.cs в таблицу aspnet_WebEvent_Event
не были вставлены записи журнала.
Могу ли я узнать, какую часть моего кода я сделал неправильно или упустил?