对于问题 #1 - 您可以打开 WCF 服务的诊断
在您的网络(或应用程序)配置中:
1) 在配置元素下的任意位置添加 System.Diagnostics 部分。您可以将路径替换为您希望存储文件的路径。
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelMessageLoggingListener">
<filter type="" />
</add>
</listeners>
</source>
<source name="System.ServiceModel" switchValue="Warning, ActivityTracing" propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\temp\services_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
<filter type="" />
</add>
<add initializeData="C:\temp\services_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
<filter type="" />
</add>
</sharedListeners>
</system.diagnostics>
2) 在 system.ServiceModel 下添加以下内容:
<diagnostics wmiProviderEnabled="false">
<messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
</diagnostics>
3) 在 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ 下启动 SvcTraceViewer.exe。加载消息跟踪 (services_messages.svclog) 和服务跟踪日志 (services_tracelog.svclog)。您可以在工具中拖放文件或打开一个然后添加另一个
4) 寻找问题的红色粗体字母。
如果您想让编辑 WCF 配置的体验更令人满意,您可以使用与 SvcTraceViewer.exe (#3) 位于同一文件夹下的 SvcConfigEditor.exe。只需打开配置文件,您应该会看到 Diagnostics 文件夹,它允许您启动/停止和配置诊断。