5

私は、次の設定があります。なぜVisual Studioはweb.configトレースリスナーの設定について不平を言っていますか?私のweb.configファイルで

MSDNの例 hereのように、ちょうど同じである
<system.diagnostics> 
    <trace> 
    <listeners> 
     <add name="AzureDiagnostics" 
      type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
      <filter type="" /> 
     </add> 
    </listeners> 
    </trace> 
</system.diagnostics> 

<system.diagnostics> 
    <trace> 
    <listeners> 
     <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, 
      Microsoft.WindowsAzure.Diagnostics, 
      Version=1.0.0.0, 
      Culture=neutral, 
      PublicKeyToken=31bf3856ad364e35" 
      name="AzureDiagnostics"> 
      <filter type="" /> 
     </add> 
    </listeners> 
</trace> 

しかし、Visual Studioが内部type属性を強調します<filter type=""と私はそこにマウスを移動するときthe 'type' attribute is not allowedと言う。私がIntelliSenseを使用して何が許可されているかを調べようとすると、lockItemlockElementslockAttributeslockAllElementsExceptおよびlockAllAttributesExceptがあります。

なぜVisual Studioにはtypeの中にfilterが含まれていませんか?

+0

コードをコンパイルしても動作しますか?唯一の問題は、Visual Studioが不平を言うことですか? – DOK

+0

@DOC:うまくいくように見えますが、その 'type'が何をすべきか、VSがなぜ文句を言っているのかよくわかりません。 – sharptooth

+0

ReSharperを実行していますか?まだ修正できていないバグがあります。 –

答えて

8

Visual Studioはスキーマを使用して、設定ファイル内のXMLを検証します。この場合、スキーマ内のフィルタ要素に定義された型属性は表示されません。これは、スキーマの監視/バグの可能性があります。フィルタ設定の使用には明らかに必要なため、スキーマなしでは機能しません。これは、Windows Azureに固有のものではありません。

app.config/web.configファイルを開き、プロパティウィンドウを確認すると、スキーマプロパティが表示されます。これらは、構成ファイルを検証するために使用されているすべてのスキーマであり、いくつかあります。ここで興味のあるスキーマはDotNetConfig.xsdです(私のマシン上では、VS 2012を使用しているC:\ Program Files(Microsoft)Visual Studio 11.0 \ xml \ Schemas \ 1033 \ DotNetConfig.xsdにあります)。 XSDをよく知っていれば、これを解くことができます。また、要素定義(configuration/system.diagnostics/trace/listeners/ListenerElement/filter)までドリルダウンすると、型要素が示されていないことがわかります。ただし、共有リスナー(configuration/system.diagnostics/sharedListeners/ListenerElement/filter)の下のフィルタ要素を見ると、属性タイプが存在し、必須です。

下の設定を使用した場合、タイプは共有リスナーセクションのフィルタで予想されるため、VSに下線は表示されません。私はもう一度指摘しておきますが、ここでの下線は実際には問題ではありません。ただVSというのは、フィルタの下にtype属性を置くべきだとは思っていませんが、トレースの下にフィルタを定義するリスナーとスキーマのバグです。私はそれについて心配しません。

<system.diagnostics> 
     <sharedListeners> 
     <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
      name="AzureDiagnostics"> 
      <filter type="" /> 
     </add> 

     </sharedListeners> 
     <trace> 
      <listeners> 
       <add name="AzureDiagnostics" /> 
      </listeners> 
     </trace> 
    </system.diagnostics> 
関連する問題