2013-01-06 26 views
7

次の問題についてご意見がありましたら幸いです。Dynamics CRM 2011プラグインからSystem.Diagnostics.Traceを呼び出す

ここにいくつかのスーパーシンプルなプラグインコードがあります。

namespace Demo.DebugTraceBlog 
{ 
    public class TraceAndDebugDemo : IPlugin 
    { 
     public void Execute(IServiceProvider serviceProvider) 
     { 
      Trace.WriteLine("Started Plugin");  
      Trace.WriteLine("Plugin Working");  
      Trace.WriteLine("Ending Plugin");     
     } 
    } 
} 

DebugView(http://goo.gl/YRfus)を使用して、書き込まれるトレースメッセージを表示しています。このコードをサンドボックスで実行しているプラ​​グインとして実行すると、期待通りの結果が得られます.3つの行がDebugViewに表示され、VSをSandboxワーカープロセスに接続すると、3つの行が出力ウィンドウに表示されます。今度は、分離モードをnoneに変更し、W3WP.EXEプロセスで実行させると、DebugViewに出力が得られません。W3WP.EXEに接続すると、実行中であることを確認するブレークポイントを設定できますが、出力ウィンドウに出力を取得します。

これがなぜ発生しているのか、原因を無効にして、サンドボックス以外の実行を予想どおりに動作させることができるかどうか、考えてください。私は、CRM IISプロセスの内部で実行することと関連していることについていくつかの推測をすることができ、CRMはトレースの書き込みを抑制している - 私は具体的に問題を避けるためにデバッグの代わりにトレースを使用しました。

私はITracingServiceを使用することができますが、それは私の現在の要件を満たしていないことを知っています。

+0

オンプレミスまたはオンライン?それが重要かどうかはわかりませんが、知っておくと良いです。 –

+0

オンプレミス同期。オンラインはサンドボックス内でのみ実行でき、トレースはサンドボックス内で正常に動作します。 – Nicknow

+0

私はジャックを持っています...申し訳ありません。私はワンショットをしたが、それはそれではないことに気づいた。 –

答えて

2

(推測)これを設定ファイルに追加します。それがうまくいけば、.NETトレースには別のアプリドメインにあるときのデフォルトのリスナーにいくつかの問題があります。

D:\Log\MyApp\Programを、ASP.NETがフルアクセス権を持つパスに変更します。

... 
<system.diagnostics> 
<switches> 
... 
</switches> 
<sources> 
... 
</sources> 
<trace autoflush="true"> 
    <listeners> 
    <clear /> 
    <add name="defaultListener" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" 
     initializeData="FileLogWriter" 
     Append="true" 
     AutoFlush="true" 
     BaseFileName="program" 
     CustomLocation="D:\Log\MyApp\Program" 
     DiskSpaceExhaustedBehavior="DiscardMessages" 
     Encoding="Unicode" 
     IncludeHostName="false" 
     LogFileCreationSchedule="Daily" 
     location="Custom" 
     MaxFileSize="900000000000" /> 
    <add name="programConsoleListener" type="System.Diagnostics.ConsoleTraceListener" /> 
    </listeners> 
</trace> 
</system.diagnostics> 
... 
関連する問題