Проблема конфигурации Web.Config / Пользовательские провайдеры - PullRequest
1 голос
/ 16 июня 2009

Хорошо, это кажется очень простой проблемой, но я не могу обойти ее. Я почти на 99% уверен, что это проблема самой Visual Studio, но я хочу провести быструю проверку работоспособности.

Я создаю собственного провайдера для мониторинга работоспособности в Asp.Net. Я сделал очень простой поставщик, который наследуется от BufferedWebEventProvider. Код находится в каталоге App_Code моего сайта и выглядит следующим образом:

Public Class SQLApplicationExceptionProvider
Inherits System.Web.Management.BufferedWebEventProvider
    Public Overrides Sub Initialize(ByVal name As String, ByVal config As System.Collections.Specialized.NameValueCollection)
        MyBase.Initialize(name, config)
    End Sub
    Public Overrides Sub ProcessEvent(ByVal eventRaised As System.Web.Management.WebBaseEvent)
        MyBase.ProcessEvent(eventRaised)
    End Sub
    Public Overrides Sub ProcessEventFlush(ByVal flushInfo As System.Web.Management.WebEventBufferFlushInfo)
    End Sub
    Public Overrides Sub Shutdown()
        Me.Flush()
    End Sub
End Class

И web.config выглядит следующим образом.

<healthMonitoring enabled="true" heartbeatInterval="100" >
    <providers>
        <add name="DBSExceptionProvider" type="SQLApplicationExceptionProvider"
            buffer="true" bufferMode="RegularNotification" />
    </providers>
    <rules>
        <add name="DBSErrors" eventName="All Errors" provider="DBSExceptionProvider"
            profile="Critical" />
    </rules>
    <bufferModes>
        <add name="RegularNotification" maxBufferSize="10" maxFlushSize="5"
            urgentFlushThreshold="2" regularFlushInterval="Infinite"
            urgentFlushInterval="00:00:30" />
    </bufferModes>
    <profiles>
        <add name="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00" />
        <add name="Critical" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" />
    </profiles>
</healthMonitoring>

Всякий раз, когда я пытаюсь скомпилировать, я получаю эту ошибку:

Ошибка 2 Не удалось загрузить тип «SQLApplicationExceptionProvider».
Путь \ web.config 90

Я подумал об использовании полного имени типа (хотя оно и не требуется), но поскольку это веб-сайт (а не веб-приложение), я не уверен, каким будет этот тип.

Ответы [ 3 ]

1 голос
/ 16 июня 2009

Я знаю, что это может звучать странно, но у меня была эта проблема раньше, и для ее устранения мне пришлось удалить (или закомментировать) раздел «проблема» из моего файла web.config (в вашем случае - раздел мониторинга здоровья) , создайте сайт, добавьте раздел «проблема» и соберите снова.

странно работает для меня ...

0 голосов
/ 16 июня 2009

настроили ли вы свой файл конфигурации для принятия вашего обработчика?

т.е. добавили запись section в вашу коллекцию configSections в верхней части файла web.config.

<configSections>
    <section name="healthMonitoringSection" type="fully qualified assembly path of handler" />
</configSections>
0 голосов
/ 16 июня 2009

Я предлагаю вам не использовать веб-сайты "проекты", за исключением простых веб-сайтов. Вероятно, это проблема того, что ваш класс находится в пространстве имен, в котором вы его не ожидали. Такие проблемы часто возникают с «проектами» веб-сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...