Asp.net silverlight应用程序关闭时,异步WCF调用并不总是成功
我有一个silverlight应用程序在浏览器中运行,作为整个ASP.NET网站的一部分。我正在用它记录一些事件(跟踪一些UI点击事件等等) 我设置了一个WCF服务来创建DB日志记录,显然Silverlight应用程序正在异步调用它 这一切都很好,直到我尝试在应用程序生命的最后一刻打电话给日志服务。也就是说,当用户单击某个按钮时,silverlight会调用网站上的一些javascript重定向到另一个页面,因此silverlight应用程序会关闭,然后只有最后的记录器调用才会通过 我假设这与silverlight的关闭过程有关,这是一个时间问题,有时WCF通道仍然打开,消息通过,有时通道关闭,日志记录不发生 无论日志记录是否发生,最后一次记录器调用都不会触发回调 作为最后一次关闭单击事件处理程序的一部分,silverlight应用程序调用以下内容:Asp.net silverlight应用程序关闭时,异步WCF调用并不总是成功,asp.net,wcf,silverlight,Asp.net,Wcf,Silverlight,我有一个silverlight应用程序在浏览器中运行,作为整个ASP.NET网站的一部分。我正在用它记录一些事件(跟踪一些UI点击事件等等) 我设置了一个WCF服务来创建DB日志记录,显然Silverlight应用程序正在异步调用它 这一切都很好,直到我尝试在应用程序生命的最后一刻打电话给日志服务。也就是说,当用户单击某个按钮时,silverlight会调用网站上的一些javascript重定向到另一个页面,因此silverlight应用程序会关闭,然后只有最后的记录器调用才会通过 我假设这与s
System.Windows.Browser.HtmlPage.Window.Eval("ViewEmployersPageWithMenu();")
据我所知,当浏览器离开silverlight应用程序时,它将触发silverlight应用程序的退出
在执行此操作之前,我对异步wCF服务发出了一个简单的记录器调用
我相信silverlight在退出处理期间不允许异步服务调用,是这样吗?如果在应用程序关闭之前,我应该以不同的方式来处理这个问题,以便成功地调用日志?如果日志记录非常重要,并且被认为是应用程序不可或缺的一部分,那么您可以推迟调用JavaScript函数,直到回调日志记录请求。它可能会在重定向的执行中造成一些延迟,因为它现在正在等待WCF请求往返,但这可能比丢失日志更好 如果您可以复制这个问题,我很好奇Fiddler在工作时与不工作时如何看待一系列请求(记录请求和重定向请求)。这可能表明浏览器在执行重定向时正在取消日志请求