これは非常に単純な問題のようですが、回避することはできません。私はほぼ99%がVisual Studio自体の問題だと確信していますが、素早いサニティチェックが必要です。設定の問題Web.Config /カスタムプロバイダ
私は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>
私がコンパイルしようとするたびに、私はこのエラーを取得:
Error 2 Could not load type 'SQLApplicationExceptionProvider'.
Path\web.config 90
(私はタイプの完全な名前を使用して考えられて(それが要求されるべきではないにもかかわらず)が、これはウェブサイトであるため、 Webアプリケーションではない)私はそのタイプがどんなものか確信していません。
私はVSがウェブサイトプロジェクトにドロップするのが好きな「デザイナー」ファイルに少し腹が立っていますが、私は完全に同意します。コンパイル時に標準のWebサイトが作成する予測可能な名前空間があるかどうかはわかりませんでした。 – Nathan
Webアプリケーションプロジェクトでは、アプリケーションの単一のアセンブリにすべてコンパイルされるので、いくつの.designer.csファイルが存在するかは関係ありません。ウェブサイト "プロジェクト"の私の理解(おそらく欠陥がある)は、彼らが名前空間を使用していないということです。名前空間は、Webサイト開発者にとって、この混乱を引き起こしたMicrosoftの考えを考えると、複雑すぎるようです。 –
しかし、あなたのクラスを見つけることができるかどうかを調べるためにObject Browserを見て、それがどのような名前空間であるかを学んでください。Object Browserに役立つ検索機能があります。 –