我有一个Silverlight应用程序,服务器端使用“Forms”类型的身份验证模式。此身份验证在一段时间后过期,这是我们想要的行为。服务器端是.svc Web服务。
问题是,如果我在身份验证到期后向服务器端发送请求,则会收到“远程服务器返回错误:NotFound”。信息。理想情况下,我想知道身份验证已过期,以便我可以在客户端以更优雅的方式处理它。
有没有人不得不处理类似的问题?
谢谢!
答案 0 :(得分:0)
我将假设您无法控制被叫服务。如果不需要客户端上的立即更新(在您的描述中似乎不是这样),您可以简单地找出服务返回的异常并将其包装以显示您喜欢的内容。
ResultObject result;
try {
result = RetrieveDataFromWebService();
} catch (ExceptionThatIsThrownFromWebService exception) {
DisplayErrorInCustomWayToUser(exception);
}
答案 1 :(得分:0)
开箱即用,Silverlight / WCF通信无法正确处理故障。我的第一个建议是阅读
http://msdn.microsoft.com/en-us/library/ee844556(v=VS.95).aspx
这说明了如何在出现错误时告诉Silverlight读取SOAP主体,而不是默认为std CommunicationException行为。