本部分包含可用于帮助诊断 WCF 适配器问题的步骤。
检查 IIS 服务器的 IIS 日志和 HTTPERR 日志是否存在错误
源或目标 IIS 服务器日志文件可以包含有助于排查独立 WCF 适配器问题的信息。 默认情况下,Windows Server 计算机上的 IIS 日志文件位于以下目录中:
%WinDir%\system32\LogFiles\W3SVC1\
注释
%WinDir% 是 IIS 服务器上 Windows 目录位置的占位符。
默认情况下,基于 Windows Server 2003 和 Windows Server 2008 SP2 的计算机上的 HTTPERR 日志文件位于以下目录中:
注释
HTTPERR 日志文件仅适用于基于 Windows Server 2003 和 Windows Server 2008 SP2 的计算机。
%WinDir%\system32\LogFiles\HTTPERR\
使用 WCF 消息日志记录来监视和诊断 WCF 适配器中的问题
WCF 提供记录传入和传出消息以供脱机使用的功能。 可以使用消息日志记录来查看通过 WCF 适配器传入和传出的消息的外观。 WCF 默认不会记录消息。 若要激活消息日志记录,必须修改 WCF 适配器使用的配置文件。 有关 WCF 消息日志记录的详细信息,请参阅以下位置 https://go.microsoft.com/fwlink/?LinkId=89003的“消息日志记录”。
对于正在进行的 WCF 适配器,可以通过修改 BTSNtSvc.exe.config 的应用程序配置文件来启用 BTSNtSvc.exe 的 WCF 消息日志记录。 可以在 BizTalk Server 安装路径中找到配置文件。 如果将 BizTalk Server 安装到默认位置,BtsNtSvc.exe 将位于目录 \Program Files (x86)\Microsoft BizTalk Server <VERSION> 中。
对于隔离的 WCF 适配器,可以通过修改 BizTalk WCF 服务发布向导在 Web 应用程序文件夹中创建的 Web.config 文件来启用 WCF 消息日志记录。
若要修改 BTSNtSvc.exe.config 或 Web.config,请使用记事本打开配置文件,然后配置 WCF 消息日志记录,如以下配置示例所示:
<configuration> <system.serviceModel> <diagnostics> <messageLogging logEntireMessage="true" logMalformedMessages="false" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="300000" maxSizeOfMessageToLog="200000" /> </diagnostics> </system.serviceModel> <system.diagnostics> <sources> <source name="System.ServiceModel.MessageLogging"> <listeners> <add name="messages" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\wcfTrace.e2e" /> </listeners> </source> </sources> </system.diagnostics> </configuration>
可以使用 Windows Communication Foundation (WCF) 服务跟踪查看器工具分析 WCF 记录的消息。 服务跟踪查看器包含在适用于 Windows Vista 和 .NET Framework 运行时组件的 Microsoft Windows 软件开发工具包(SDK)中。 可以从 Microsoft下载中心下载 Windows SDK。 有关使用此工具的详细信息,请参阅“ https://go.microsoft.com/fwlink/?LinkId=88991服务跟踪查看器工具(SvcTraceViewer.exe)”。
将托管异常信息返回到 SOAP 故障中的客户端,以简化调试
可以为标准 WCF 接收位置选择 “在错误中包含异常” 选项,以便在 SOAP 错误中将托管异常信息返回给客户端,从而简化调试。 使用以下步骤选择“错误中包含异常”选项。
在 BizTalk Server 管理控制台中,依次展开 BizTalk Server管理、 BizTalk 组、 应用程序、 接收位置、使用标准 WCF 适配器右键单击接收位置,然后单击 “属性”。
在“ 接收位置属性 ”对话框中,单击“ 配置”。
在传输对话框中的“ 消息 ”选项卡上,选择 “错误中包含异常 ”选项。
如果使用 WCF-Custom 或 WCF-CustomIsolated 适配器,则可以将 ServiceDebugElement 的 IncludeExceptionDetailInFaults 属性设置为将托管异常信息返回到客户端。 为此,请按照以下步骤操作:
在 BizTalk Server 管理控制台中,依次展开 BizTalk Server管理、 BizTalk 组、 应用程序、 接收位置、使用 WCF-Custom 或 WCF-CustomIsolated 适配器右键单击接收位置,然后单击“ 属性”。
在“ 接收位置属性 ”对话框中,单击“ 配置”。
在传输对话框中的“ 行为 ”选项卡上,右键单击 ServiceBehavior 节点,然后单击“ 添加扩展”。
在 “选择行为扩展 ”对话框中,选择 serviceDebug,然后单击“ 确定”。
在传输对话框中的“行为”选项卡上,单击 serviceDebug 节点,然后在“配置列表”视图中为 includeExceptionDetail 属性选择 True。
注释
将托管异常信息返回到客户端可能是一种安全风险,因为异常详细信息公开了有关未经授权的客户端可以使用的内部服务实现的信息。