摘要:
看来,我解决超时问题的努力只取得了部分成功。我的问题是就如何使分析成功地生成分析报告征求意见。
详细信息:
根据请求,客户为32位COM+服务器应用程序提供了一系列内存转储。其思想是使用LeakTrack动态链接库来帮助跟踪在此过程中观察到的一些内存泄漏的来源。
启动调试诊断分析工具,并添加转储文件。选中“MemoryAnalysis”复选框后,将启动分析。两个小时后,分析工具将显示一个报告问题的消息框:
No report file was generated
---------------------------
An error occurred while generating the analysis report
Exception:
Type: TimeoutException
Message: This request operation sent to net.pipe://localhost/15466de6-db7d-477f-aac4-42980eb2f27f did not receive a reply within the configured timeout (02:00:00). The time allotted to this operation may have been a portion of a longer timeout. This may be because the service is still processing the operation or because the service was unable to send a reply message. Please consider increasing the operation timeout (by casting the channel/proxy to IContextChannel and setting the OperationTimeout property) and ensure that the service is able to connect to the client.
StackTrace:
Server stack trace:
at System.ServiceModel.Dispatcher.DuplexChannelBinder.SyncDuplexRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Dispatcher.DuplexChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at DebugDiag.DotNet.x86Analysis.IAnalysisService.RunAnalysisRules(List`1 analysisRuleInfos, List`1 dumpFiles, String symbolPath, String imagePath, String reportFileFullPath, TimeSpan timeout, Boolean twoTabs, Boolean includeSourceAndLineInformationInAnalysisReports, Boolean setContextOnCrashDumps, Boolean doHangAnalysisOnCrashDumps, Boolean includeHttpHeadersInClientConns, Boolean groupIdenticalStacks, Boolean includeInstructionPointerInAnalysisReports, List`1& facts)
at DebugDiag.DotNet.NetAnalyzer.RunX86Analysis(NetProgress progress, List`1 dumpFiles, List`1 analysisRuleInfos, String symbolPath, String imagePath, String reportFileFullPath, Boolean twoTabs, NetResults& results, List`1& facts)
at DebugDiag.DotNet.NetAnalyzer.RunAnalysisRulesInternal(DumpFileType bitness, NetProgress progress, String symbolPath, String imagePath, String reportFileFullPath, Boolean twoTabs, AnalysisModes analysisMode)
at DebugDiag.DotNet.NetAnalyzer.RunAnalysisRules(NetProgress progress, String symbolPath, String imagePath, String reportFileDirectoryOrFullPath, Boolean twoTabs, AnalysisModes analysisMode)
at DebugDiag.Analysis.AnalyzerClient.RunAnalysisAsyncInternal(NetProgress progress, String symbolPath, String imagePath, List`1 dumpFiles, List`1 analysisRules, String reportFileDirectoryOrFullPath, Boolean IncludeSourceAndLineInformationInAnalysisReports, Boolean SetContextOnCrashDumps, Boolean DoHangAnalysisOnCrashDumps, Boolean IncludeHttpHeadersInClientConns, SynchronizationContext synchContext, Boolean ExcludeIdenticalStacks, Boolean IncludeInstructionPointerInAnalysisReports)在使用DebugDiag dotPeek浏览了JetBrains分析工具程序集之后,我对DebugDiag.Analysis.exe.config做了一个更改,试图将超时设置更改为4小时:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DebugDiag.DotNet.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<DebugDiag.DotNet.Properties.Settings>
<setting name="AnalysisCompletedTimeout" serializeAs="String">
<value>04:00:00</value>
</setting>
</DebugDiag.DotNet.Properties.Settings>
</applicationSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<system.net>
<defaultProxy useDefaultCredentials="true">
</defaultProxy>
</system.net>
</configuration>重新尝试分析后,该工具再次工作约2个小时。完成后,Internet将启动其报告,结果显示为完全空白。对DebugDiag reports文件夹的检查显示,.mht报表文件的大小为0字节。不过,这次没有显示“超时异常”消息框。
所以我要问的问题是:为什么没有生成报告?是否需要添加/修改其他配置设置,以便在调试diag分析主机进程或调用(UI)进程中完成报表?
为了努力了解可能发生的其他问题,我在进行分析时就将windbg附加到了DebugDiag.x86AnalysisHost.exe过程中。我的希望是,我可以看到其他例外情况的证据,这些证据可以为正在发生的事情提供线索。然而,这一过程似乎以一种有控制的方式退出,没有任何例外情况。
关于下一次欢迎去哪里的建议。
发布于 2019-08-08 08:15:51
我还将补充说,我收到了这个问题的超时。
遗憾的是,试图找到关于.config应该如何配置的任何信息有点问题,因为它似乎不存在。

我会更新这篇文章,如果我解决了,但我希望包括错误信息将有所帮助。
发布于 2022-09-29 06:03:47
它可以在\AnalysisRules\DebugDiag.AnalysisRules.dll.config中配置
https://stackoverflow.com/questions/56377065
复制相似问题