Я написал пользовательское событие MyWebErrorEvent
, полученное из WebErrorEvent
, расположенное в папке App_Code моего проекта веб-сайта ASP.NET 2.0. Класс MyWebErrorEvent
не содержится в пространстве имен. Я поместил в свой файл web.config следующее:
<configuration>
<system.web>
<healthMonitoring>
<eventMappings>
<add name="Event1" startEventCode="0" endEventCode="2147483647" type="MyWebErrorEvent"/>
</eventMappings>
</healthMonitoring>
</system.web>
</configuration>
Во время компиляции и выполнения я получаю следующую ошибку:
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Could not load type 'MyWebErrorEvent'.
Source Error:
Line 16: <healthMonitoring>
Line 17: <eventMappings>
Line 18: <add name="Event1" startEventCode="0" endEventCode="2147483647" type="MyWebErrorEvent"/>
Line 19: </eventMappings>
Line 20: </healthMonitoring>
Класс MyWebErrorEvent действительно компилируется без ошибок. Кто-нибудь знает, как это исправить?
РЕДАКТИРОВАТЬ: http://msdn.microsoft.com/en-us/library/bb398933.aspx говорит, что это должно работать для пользовательских событий. Цитата:
Добавьте сборку, содержащую пользовательскую реализацию веб-события, в подкаталог Bin приложения ASP.NET. Кроме того, вы можете добавить файл исходного кода события в подкаталог App_Code.
Однако также говорится, что это не будет работать для пользовательских провайдеров событий:
Поместите сборку, содержащую реализацию пользовательского провайдера, в подкаталог Bin приложения. Вы не можете поместить файл исходного кода провайдера в подкаталог App_Code, поскольку система мониторинга работоспособности настраивается и создается до компиляции любых файлов кода в подкаталоге App_Code.
Я предполагаю, что документация о пользовательских событиях действительно неверна, и они должны входить в сборку, отличную от веб-сайта.