我有一个wpf应用程序,它将每次调用类库作为插件来连接wcf服务。在类库中调用服务方法时,它将给出上述异常。并且异常消息是
er = {Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.}
即使堆栈跟踪也有上述消息。解决方案是什么?
答案 0 :(得分:1)
我只是在这里猜测,因为你没有提供太多代码。但是在主应用程序中,请确保添加以下事件处理程序;
DispatcherUnhandledException
AppDomain.CurrentDomain.UnhandledException
TaskScheduler.UnobservedTaskException
此线程中也有记载:
http://stackoverflow.com/questions/1472498/wpf-global-exception-handler
使用Log4net之类的东西记录您的异常。关于WCF,所有调用应该包含在try catch块中。
如果您的错误与WCF相关,您可以使用您服务的app.config文件并添加以下配置:
<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="c:\temp\wcf.svclog" />
</sharedListeners>
这会将所有WCF活动记录到c:\ temp \ wcf.svclog,您可以使用位于win sdk目录中的工具SvcTraceViewer.exe查看该活动。
希望有所帮助
了Stian