c# - 验证 session 超时时如何在 Silverlight 中处理 WCF 服务错误

标签 c# wcf silverlight web-services

我有一个正在 Silverlight 中访问的 WCF 服务。 Silverlight 应用程序需要身份验证(身份验证通过调用服务进行。)

我注意到,当经过身份验证的 session 超时并且用户在应用程序端执行某些会调用服务的操作时,应用程序只是挂起等待服务响应。我的服务旨在在这些情况下输出异常,但是 Silverlight 端没有分配任何内容,而是抛出异常:

CommunicationException 未被用户代码处理

远程服务器返回错误:NotFound。

在我的服务方法中,我检查用户是否仍然通过身份验证,如果是,我继续操作。如果不是,我会为输出参数(Exception 类型)赋值。在 Silverlight 端,我检查此异常是否为空,否则采取适当的措施。当我执行时,out 参数被赋予了正确的异常,但是 Silverlight 在它甚至到达我可以处理它的地步之前抛出上述异常(在 Reference.cs 中)...

有没有人看过这个?有什么建议吗?

编辑:似乎有任何类型的异常,包括继承和包含它们,都会导致上述异常。我发现解决这个问题的最简单方法是将异常信息传递到我自己的自定义异常对象中(同样,不能包含 System.Exception 对象)

最佳答案

更多信息的想法和请求:

您是否针对控制台应用程序检查了您的 WCF 服务,一切都按预期工作?

您可以从您的 Silverlight 应用程序对您的 WCF 服务进行调用,并且此行为仅在经过身份验证的 session 超时后发生?

您是否在 Silverlight 应用程序的整个生命周期内保持与 WCF 的连接打开?如果是这样,我建议只根据需要打开和关闭它。这样,您应该只在 session 通过身份验证时调用它。

关于c# - 验证 session 超时时如何在 Silverlight 中处理 WCF 服务错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245808/

相关文章:

c# - 如何在另一个类中使用扩展函数? C#

c# - WCF MessageHeader 不会写入命名空间

c# - 来自 IOperationInvoker 的方法名称

c# - 银光 2 : INotifyPropertyChanged on dynamically created object?

c# - Silverlight 等同于已签名的 Java Applet?

c# - 将 WebSocket 与 ASP.NET Web API 结合使用

C# : Retrieve array values from bson document

wcf - Infopath 2007 和 WCF 数据连接

c# - 在 Silverlight/WPF 中绑定(bind)复杂属性

c# - 关闭一个表单然后调用另一个