Я использую VS2005 C # 2.0 и SQL Server 2005.
Я имею в виду это руководство по настройке мониторинга работоспособности.
В конце руководства будет кнопка Default.aspx и нажатие кнопки on_Click, новая запись будет вставлена в мою таблицу SQL.
Однако, когда моя кнопка нажата, в таблицу не вставляется запись.
Я не уверен в том, что это за ошибка, поскольку сообщения об ошибках не отображаются, поэтому я предполагаю, что единственный способ - это метод проб и ошибок в случае ошибки.
P.S. Я не могу скомпилировать библиотеку классов MyWebEvents
, потому что нет вывода. В моем основном веб-приложении я добавил справочную dll из папки bin моего файла проекта MyWebEvents . DLL, на которую я ссылаюсь, действительна для использования, или есть шаг, который я пропустил при компиляции?
Ниже приведены коды, которые я запустил со ссылкой на сайт Microsoft:
MyCriticalEvent.cs
in 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
in Главное веб-приложение :
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
in Основное веб-приложение :
<configuration>
<appSettings/>
<connectionStrings>
<add name="MySqlConnection" connectionString="Data Source=<IP>;Initial Catalog=<DB NAME>;Persist Security Info=True;User ID=<admin username>;Password=<admin password>" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<healthMonitoring enabled="true" heartbeatInterval="0">
<bufferModes>
<clear/>
<add name="Logging" maxBufferSize="1000" maxFlushSize="200" urgentFlushThreshold="800" regularFlushInterval="00:05:00" urgentFlushInterval="00:01:00" maxBufferThreads="1"/>
</bufferModes>
<providers>
<clear/>
<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MySqlConnection" maxEventDetailsLength="1073741823" buffer="true" bufferMode="Logging"/>
</providers>
<eventMappings>
<clear/>
<add name="All Audits" type="System.Web.Management.WebAuditEvent" startEventCode="0" endEventCode="2147483647"/>
<add name="All Errors" type="System.Web.Management.WebBaseErrorEvent" startEventCode="0" endEventCode="2147483647"/>
</eventMappings>
<profiles>
<clear/>
<add name="Audit Logs" minInstances="1" maxLimit="Infinite" minInterval="00:00:15"/>
<add name="Error Logs" minInstances="1" maxLimit="Infinite" minInterval="00:00:15"/>
</profiles>
<rules>
<clear/>
<add name="All Audits Default" eventName="All Audits" provider="MySqlWebEventProvider" profile="Audit Logs"/>
<add name="All Errors Default" eventName="All Errors" provider="MySqlWebEventProvider" profile="Error Logs"/>
</rules>
</healthMonitoring>
</system.web>
</configuration>
Таблица в моей базе данных:
Ошибка в журнале событий при разрыве соединения SQL:
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):
Сводка проблемы : При нажатии button1
на Default.aspx.cs записи журнала не добавляются в таблицу aspnet_WebEvent_Event
.
Могу ли я узнать, в какой части моего кода я ошибся или пропустил?