【问题标题】:How to turn on WCF tracing?如何打开 WCF 跟踪?
【发布时间】:2023-03-03 11:06:02
【问题描述】:

更新:

我一直在尝试开启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>

我正在使用 .NET Framework 3.5。

打开 WCF 跟踪以进行调试的分步说明是什么?

【问题讨论】:

    标签: wcf


    【解决方案1】:

    转到您的 Microsoft SDK 目录。像这样的路径:

    C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools
    

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

    SvcConfigEditor.exe
    

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

    使用编辑器打开您的 .config 文件或创建一个新文件并导航至诊断。

    您可以在此处单击“启用消息记录”。

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

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

    SvcTraceViewer.exe
    

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

    【讨论】:

    • 非常感谢您向我介绍这个 GUI 实用程序。这将使编辑配置文件变得更加容易!
    • Awesome.it 对我理解 Tracelog 有很大帮助。
    【解决方案2】:

    除了手动将跟踪启用位添加到 web.config 中,您还可以尝试使用 VS SDK 附带的 WCF 配置编辑器来启用跟踪

    https://stackoverflow.com/a/16715631/2218571

    【讨论】:

      【解决方案3】:

      可以应用从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>
      

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

      如果您的系统上没有“SvcTraceViewer.exe”,您可以从此处的“Microsoft Windows SDK for Windows 7 and .NET Framework 4”包下载它:

      Windows SDK Download

      您不必安装整个东西,只需安装“.NET 开发/工具”部分。

      当/如果它在安装过程中出现无意义的错误,Petopas' answer to Windows 7 SDK Installation Failure 解决了我的问题。

      【讨论】:

      • 我在哪里看到文件生成Error.svclog
      • 该文件将在与您的程序集相同的目录中生成。很可能是您的 bin 目录。如果您的服务托管在 IIS 中,您可能需要回收工作进程。
      • 确保您的应用程序池 - 身份具有写入该文件夹的权限。我通常为我的应用程序池分配一个专用帐户,这样我就可以向该特定用户授予读\写访问权限
      • 在开发环境中,错误文件(initializeData="Error.svclog")存储在解决方案项目中。将其更改为其他位置无效。
      • 我可以通过以下方式让它登录到一个文件夹:initializeData="C:\wcflogs\wcf_svclog.svclog" />
      【解决方案4】:

      在你的 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>
      

      【讨论】:

      • 我已经添加了这样的内容,因为除了文件夹 initializeData="\\servername\drive$\Project\WCFTraces.svclog"/&gt; 之外我无权访问开发,并且在我尝试访问服务后我没有看到该文件生成。
      • 默认情况下它是缓冲的(也许可以改变这个)。您可以通过回收应用程序池来强制它刷新。还要确保应用程序池标识可以写入该位置。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 2011-04-04
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      相关资源
      最近更新 更多