2

Web サイトのコードからデバッグ情報を出力する必要があります。

OutputDebugStringASP.net Web サイトから呼び出して、 DbgView を実行しているユーザーに表示するにはどうすればよいですか?

: Web サイトはサポートしていませんSystem.Diagnostics.Trace.TraceWarning(...)

4

1 に答える 1

-1

さて、ここに完全な例があります。これはコンソールですが、原則とコードはほとんど同じです。管理者権限がないため、今日、自分のマシンで OutputDebugString からのキャプチャをテストできませんでした。サーバーでは、コンソールの代わりに TextWriterTraceListener に書き込みます。pinvoke を使用して OutputDebugString の書き込みと読み取りができない場合は、お客様に権限がないか、アプリに必要な権限がない可能性があります。

また!Debug.WriteLine が表示されない場合は、Web サイトが RELEASE モードでコンパイルされていて、DEBUG が定義されていない可能性があります。TRACE はデフォルトで RELEASE と DEBUG に定義されています。デフォルトのリスナーをクリアしていない限り、TraceSource は OutputDebugString に書き込みます。これは、多くの人が習慣として行っていることです。これは、私の経験では、出力を実際に見ていない場合、特に OutputDebugString によって速度が低下する可能性があるためです。

using System.Diagnostics;
using System.Runtime.InteropServices;

namespace TraceToOutputDebugString
{
    class Program
    {
        [DllImport("kernel32.dll")]
        static extern void OutputDebugString(string lpOutputString);

        static void Main(string[] args)
        {
            //Put these lines in your asp.net Page
            OutputDebugString("Hello from Pinvoke OutputDebugString");
            TraceSource trace = new TraceSource("app");
            trace.TraceInformation("Hello from TraceSource");
            Trace.TraceInformation("Hello from 1.1 Trace.TraceInformation");
            Debug.WriteLine("Hello Debug.WriteLine");
            System.Console.ReadKey();
        }
    }
}

そして、ここに構成があります。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.diagnostics>
        <sources>
            <source name="app" switchName="app">
                <listeners>
                    <add name="Console" type="System.Diagnostics.ConsoleTraceListener"/>
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="app" value="Information"/>
        </switches>
        <trace>
            <listeners>
                <add name="Console" type="System.Diagnostics.ConsoleTraceListener"/>
            </listeners>
        </trace>
    </system.diagnostics>
</configuration>
于 2012-10-18T18:23:51.053 に答える