【发布时间】:2011-04-25 14:43:23
【问题描述】:
我有一个非常奇怪的问题:我正在开发一个带有 RIA 服务的 Silverlight 业务应用程序。
我在服务器端有一些 DomainServices,其中一个我遇到了问题,有时调用其中一种方法失败(在 SL 客户端上,我得到“NotFound " 异常,并且请求没有事件到达服务器(我在域服务的构造函数中放置了一个断点)!
是什么让事情变得更加奇怪:
- 如果从 SL 客户端调用失败,则我启动 Fiddler2,然后第二个(或任何连续的)调用正常工作!如果我关闭提琴手,它会再次变得不稳定。
- 如果我重命名要调用的方法(通过重构),在 SL 客户端的上下文中也调用重命名的方法,那么每次调用都会成功!
这是我的怀疑方法:
[Invoke]
public void RegisterTrainingProgramCompletion(bool isCompleted, int result, string sportsManNote)
{
//...
}
如果我将此方法重命名为“RegisterTpCompletion”,那么它可以工作(难以置信)!
DomainService 标有一些属性:
[EnableClientAccess()]
[RequiresAuthentication()]
public class NextTrainingProgramDomainService : DomainService
我设法以某种方式记录服务器端,并从 WCF 堆栈中得到以下异常:
从网络接收的 XML 存在问题。有关更多详细信息,请参阅内部异常。在 System.ServiceModel.Channels.HttpInput.DecodeBufferedMessage(ArraySegment`1 缓冲区,流 inputStream) 在 System.ServiceModel.Channels.HttpInput.ReadBufferedMessage(流输入流) 在 System.ServiceModel.Channels.HttpInput.ParseIncomingMessage(Exception& requestException) 在 System.ServiceModel.Channels.HttpChannelListener.HttpContextReceived(HttpRequestContext 上下文,动作回调) 在 System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult 结果) 在 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() 在 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest() 在 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(对象状态) 在 System.ServiceModel.AspNetPartialTrustHelpers.PartialTrustInvoke(ContextCallback 回调,对象状态) 在 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequestWithFlow(对象状态) 在 System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 错误代码,UInt32 numBytes,NativeOverlapped* nativeOverlapped) 在 System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 错误,UInt32 bytesRead,NativeOverlapped* nativeOverlapped) 在 System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 错误代码,UInt32 numBytes,NativeOverlapped* pOVERLAP)
所以由于某些未知原因,clint(SL-app)没有正确刷新请求?我开始担心了:(((
我的调用者(SL 客户端)通过自定义表单身份验证进行身份验证。
我知道你可以说,就这样吧,但这让我发疯,我想知道问题出在哪里,所以我不会再遇到它。
谢谢!
再见, 沙比
【问题讨论】:
-
我很久以前才看到您的帖子,但遇到了一个类似的错误(偶尔无法正确访问我的 RIA 实体)也许您对出了什么问题有了更好的了解并希望分享。你仍然相信 URL 长度或命名是你的问题吗?谢谢 Csabi。
-
Ramnz:除了重命名函数没有任何帮助。我在很多地方发布了这个问题,比如 RIA 论坛,但我没有得到正确的答案(甚至没有“好的,抱歉,这是一个错误”。
标签: silverlight wcf ria wcf-ria-services domainservices