如何启用WCF跟踪?

Nic*_*ahn 152 wcf

更新:

我一直试图打开WCF跟踪,但仍然没有成功......以下是我最新的更新.

我是否需要获得写入以下位置的许可?

  <system.diagnostics>
    <trace autoflush="true" />
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="sdt"
              type="System.Diagnostics.XmlWriterTraceListener"
              initializeData= "@\\myservername\folder1\traces.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

我正在使用.NET Framework 3.5.

为调试目的打开WCF跟踪的逐步说明是什么?

Roh*_*est 222

可以应用从MSDN获取的以下配置来启用WCF服务上的跟踪.

<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true" >
        <listeners>
             <add name="xml"/>
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
            <add name="xml"/>
        </listeners>
      </source>
      <source name="myUserTraceSource"
              switchValue="Information, ActivityTracing">
        <listeners>
            <add name="xml"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
        <add name="xml"
             type="System.Diagnostics.XmlWriterTraceListener"
             initializeData="Error.svclog" />
    </sharedListeners>
  </system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)

要查看日志文件,可以使用"C:\ Program Files\Microsoft SDKs\Windows\v7.0A\bin\SvcTraceViewer.exe".

如果您的系统上没有"SvcTraceViewer.exe",您可以从"Microsoft Windows SDK for Windows 7和.NET Framework 4"软件包下载它:

Windows SDK下载

您不必安装整个内容,只需安装".NET开发/工具"部分.

如果/如果它在安装过程中因非传感错误而爆炸,Petopas对Windows 7 SDK安装失败的回答解决了我的问题.

  • 我在哪里看到文件被生成`Error.svclog`? (17认同)
  • 确保您的应用程序池 - 标识具有写入该文件夹的权限.我通常有一个专门的帐户分配给我的应用程序池,这样我就可以授予该特定用户的读/写访问权限 (9认同)
  • 我能够通过使用它来记录到文件夹:initializeData ="C:\ wcflogs\wcf_svclog.svclog"/> (5认同)
  • 该文件将在与程序集相同的目录中生成.很可能是您的bin目录.如果您在IIS中托管服务,则可能需要回收工作进程. (4认同)
  • 在开发环境中,Error文件(initializeData ="Error.svclog")存储在解决方案项目中.将其更改为其他位置不起作用. (2认同)

Chr*_*oph 32

在你的web.config(在服务器上)添加

<system.diagnostics>
 <sources>
  <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
   <listeners>
    <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\logs\Traces.svclog"/>
   </listeners>
  </source>
 </sources>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

  • 默认情况下它是缓冲的(可能能够改变它).您可以通过回收应用程序池强制它进行刷新.还要确保应用程序池标识可以写入该位置. (5认同)

juF*_*uFo 17

转到Microsoft SDKs目录.像这样的路径:

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools
Run Code Online (Sandbox Code Playgroud)

从该目录打开WCF配置编辑器(Microsoft服务配置编辑器):

SvcConfigEditor.exe
Run Code Online (Sandbox Code Playgroud)

(打开此工具的另一个选项是在Visual Studio 2017中导航到"工具">"WCF服务配置编辑器")

wcf配置编辑器

打开.config文件或使用编辑器创建一个新文件,然后导航到诊断程序.

在那里,您可以单击"启用MessageLogging".

启用消息记录

更多信息:https://msdn.microsoft.com/en-us/library/ms732009(v = vs.110).aspx

使用来自同一目录的跟踪查看器,您可以打开跟踪日志文件:

SvcTraceViewer.exe
Run Code Online (Sandbox Code Playgroud)

您还可以使用WMI启用跟踪.更多信息:https: //msdn.microsoft.com/en-us/library/ms730064(v = vs.110).aspx

  • 非常感谢您向我介绍这个 GUI 实用程序。它将使编辑配置文件变得更加容易! (2认同)