14

我知道这可能是一个非常基本的问题,但我对 WCF 和服务创建是全新的。我正在使用 Microsoft VS 2010 C#4 运行本地托管的 WCF 服务。我试图通过简单的绑定通过 URL 运行服务,并通过 URL 运行 PUT 和 GET 方法。我得到:

. 有关更多详细信息,请参阅服务器日志。

当我尝试提出服务请求时出错。如何找到这些服务器日志?

4

2 回答 2

17

不一定要打开日志记录。需要在 WCF 配置(app.config 或 web.config)中启用跟踪和日志记录。您可以手动执行此操作,也可以通过单击 app.config 然后选择Edit WCF Configuration来执行此操作。如果此项目没有出现在上下文菜单中(发生在旧版本的 VS 中),您可以在 VS 工具菜单中找到它或手动运行它(SvcConfigEditor.exe)。

默认情况下,消息会记录到运行应用程序的目录中的文件中。启用日志记录后,您可以在配置编辑器中对其进行编辑。启用日志记录或跟踪后,编辑器将允许您指定文件路径。

WCF 配置编辑器

您可以稍后使用 Microsoft 服务跟踪查看器工具来浏览文件,因为它们是大型 XML 文件,并且对用户不友好。双击日志文件后,查看器工具应该会自动出现,或者您可以手动运行它(SvcTraceViewer.exe)。

在此处输入图像描述

于 2013-08-29T13:44:29.600 回答
16

将此添加到您的 web.config。您在 tracelistener 的 initializeData 属性中指定日志的位置

<system.serviceModel>
    <diagnostics>
        <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
    </diagnostics>
</system.serviceModel>
<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
            <listeners>
                <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\Temp\SvcLog\Traces.svclog" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>
于 2013-08-29T13:45:11.803 回答