配置问题Web.Config / Custom Providers

时间:2009-06-15 21:31:02

标签: asp.net .net vb.net configuration

好吧,这似乎是一个非常简单的问题,但我似乎无法绕过它。我几乎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'       Path \ web.config 90

我考虑使用Type的全名(即使它不应该被要求),但由于这是一个WebSite(而不是Web应用程序),我不确定那种类型是什么。

3 个答案:

答案 0 :(得分:1)

我知道这可能听起来很奇怪,但我之前遇到过这个问题并修复它我必须从我的web.config文件中移除(或注释掉)“问题”部分(在你的情况下是健康监控部分) ,构建网站,添加“问题”部分,然后重新构建。

奇怪地对我有用......

答案 1 :(得分:0)

我建议您不要使用网站“项目”,除了简单的网站。这可能是您的类处于您不希望它所在的命名空间中的问题。这些问题通常出现在网站“项目”中。

答案 2 :(得分:0)

您是否已将配置文件配置为接受处理程序?

即。在section文件顶部的configSections集合中添加了web.config条目。

<configSections>
    <section name="healthMonitoringSection" type="fully qualified assembly path of handler" />
</configSections>