Sometimes you would see the following page if you are clicking anywhere in a page which is idle for quite a long time.
However, there are definitely some other causes which would also lead to this timeout page – the session itself is not timeout, instead within the session, there are some exceptions raised in the backend and caught by the UI framework. As a result you could not see any dumps in ST22, and this timeout page would sometimes lead you to the wrong way of trouble shooting. For example in this thread, some friend is suggesting to enlarge the related timeout profile in RZ10. For sure that would definitely not work, since the issue in the thread is nothing to do with the real timeout issue, but instead the exception caused by a custom enhancement.
I would share with you my example how to find the root cause of this kind of I call it “pseudo” time out issue in an efficient way:
My example
click the Service Order ID for the first time, nothing happened. Click it again( or any other clickable part in the UI), I get the above timeout page.
How to figure out the root cause
I have two different approaches. The first one will take several minutes to find the root cause via debugging.
(1) Create a breakpoint based on exception class CX_ROOT( for detail see this blog )
Launch UI and click hyperlink for the first time, the breakpoint is triggered and debugger stopped. In the status bar we get the hint that exception CX_BSP_WD_EXC_WRAPPER occurs. Set another breakpoint in its CONSTRUCTOR method.
(2) Relaunch the UI, the breakpoint in exception class CONSTRUCTOR is triggered, telling us there is something wrong with a custom UI component ZCUSTOM/MainWindow. In line 51 we know the exception class CX_BSP_WD_INCORRECT_IMPLEMENT. Set the breakpoint in its CONSTRUCTOR again.
(3) Relaunch the UI, now we find root cause: The overview page tries to display the view defined in ZCUSTOM/MainWindow, however it is not in the parsed component usage repository table ( me->usages in line 4)
Double check it in UI workbench it is because the custom UI component is added as component usage based on enhancement set A, however currently enhancement set B is active in current client.
The second approach is even more efficient. You could enable the UI framework to persist the exception which are raised and caught somewhere for example your own Z table with little effort so that it is convenient for you to check them afterwards. For detail steps please see my blog How to persist the UI exception so you can view them later.
In my example, I could immediately know this issue is caused by incorrect component usage with the exact usage name without debugging.
If you would like to know why timeout page is always displayed, although it is not a timeout issue at all, please find reason here.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
CRM7.0 WebClient UI config
绝大部分异常信息为:System.Net.WebException: The operation has timed out,即网络操作超时的异常
Subject: 为什么design time时候看到的是ICQR,点了service之后看到02QR的代码被call到 这是cross component navigation在起作用。 Result list是model在ICQR里面,如果点service,会navigate到service detail page...
WebClient 是一个常用的网络访问类,它可以模拟浏览器的行为来访问网页。然而,在某些情况下,WebClient 访问间歇性返回 403 错误,这种情况非常让人讨厌。 分析错误信息,我们可以发现,403 错误是由于权限设置...
UI Guidelines for CRM WebClient User Interface
C# WebClient 上传文件 WebClient上传文件至服务器
通过WebClient的Postdata将上传文件功能放到另一个网站上去操作
Sent: Thursday, May 9, 2013 6:30 PM Subject: ON_NEW_FOCUS的用途 ROOT ———————————— Product ID PRODshortText ———————————— Product Description Genil Model hierarchy
我们先在IIS网站中建立一个文件夹,此处为"Mp3",并设置此文件夹相关读写权限。 例1:使用WebClient中的UploadFile方法上传文件。代码如下。使用此方法需要将上传的文件夹权限设置为 IIS来宾账户允许读写。 例2:...
C# WebClient实现文件下载 示例源码
WebClient jar包
webui学习者
c#中的WebClient的用法,模拟请求
本篇文章主要介绍了C#中WebClient实现文件下载,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
支持 Session 和 Cookie 的 WebClient
WebClient下载文件展示进度条
基于webClient 的ftp操作,该案例是基于http模式,如果是ftp,直接将http改成ftp即可
webClient 服务器端与客户端配置
使用WebClient的UploadFileAsync、UploadFile、DownloadFile、DownloadFileAsync方法,异步调用服务器上传下载数据。
下载开箱即用:C#使用WebClient获取网页源文件例子:该例子演示了通过WebClient获取百度首页源文件,并进行UTF8解码,存入一个字符串中。