2009-06-15 78 views
1

好吧,這看起來像一個非常簡單的問題,但我似乎無法解決它。我幾乎99%肯定這是Visual Studio本身的問題,但我希望能夠快速進行完整性檢查。配置問題Web.Config/Custom Providers

我正在爲Asp.Net中的Health Monitoring創建一個自定義提供程序。我做了一個從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> 

每當我嘗試編譯,我得到這個錯誤:

Error 2 Could not load type 'SQLApplicationExceptionProvider'.
Path\web.config 90

我使用類型(即使它不應該被要求)的全稱考慮,但由於這是一個網站(而不是一個Web應用程序)我不知道這是什麼類型。

回答

0

我建議你不要使用網站「項目」,除了簡單的網站。這可能是您的課程在名稱空間中的一個問題,您不希望它位於該名稱空間中。此類問題通常出現在網站「項目」中。

+0

我完全同意,但我得到由VS喜歡放到一個網站項目的增加「設計師」的文件有點懊惱。我不確定是否有一個標準網站在編譯時會創建一個可預測的名稱空間。 – Nathan 2009-06-16 12:06:19

+0

在一個web應用程序項目中,可能有多少.designer.cs文件並不重要,因爲它們都被編譯到應用程序的單個程序集中。我對網站「項目」的理解(可能有缺陷)是他們不使用名稱空間。對於網站開發人員來說,命名空間顯然太複雜了,因爲想到那些造成這種混亂的微軟的人。 – 2009-06-16 12:37:57

+0

但是,請使用對象瀏覽器來查看是否可以找到您的班級,並瞭解它的名稱空間。對象瀏覽器具有您可能會覺得有幫助的搜索功能。 – 2009-06-16 12:39:07

1

我知道這可能聽起來很奇怪,但我之前有過這個問題並修復它我不得不從我的web.config文件中刪除(或註釋掉)「問題」部分(在您的情況下,healthmonitoring部分),建立網站,將「問題」部分添加回來,然後重新構建。

奇怪的工作對我來說...

0

你配置你的配置文件來接受你的處理器?

I.E.在web.config文件的頂部添加了一個section條目到您的configSections系列。

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