【问题标题】:Silverlight WCF ErrorSilverlight WCF 错误
【发布时间】:2011-02-15 15:00:24
【问题描述】:

如果我离开我的 silverlight 应用程序 10 分钟左右,然后调用一个 soap 方法,我会得到以下堆栈跟踪:

{System.ServiceModel.CommunicationException: 远程服务器返回错误: 未找到。 ---> System.Net.WebException:远程 服务器返回错误:未找到。 ---> System.Net.WebException:远程服务器返回错误: 未找到。在 System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) 在 System.Net.Browser.ClientHttpWebRequest.c_DisplayClass5.b_4(Object 发送状态)在 System.Net.Browser.AsyncHelper.c_DisplayClass2.b_0(Object sendState) --- 内部结束 异常堆栈跟踪 --- 在 System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback 开始方法,对象状态)在 System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult 结果)---内部异常结束 堆栈跟踪 --- 在 System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult 结果)在 System.ServiceModel.Channels.ServiceChannel.EndCall(字符串 动作,Object[] 出局,IAsyncResult 结果)在 System.ServiceModel.ClientBase1.ChannelBase1.EndInvoke(字符串 方法名,对象 [] 参数, IAsyncResult 结果)在 BlueForums.Blue.BlueClient.BlueClientChannel.EndThreadViewIncrement(IAsyncResult 结果)在 BlueForums.Blue.BlueClient.BlueForums.Blue.IBlue.EndThreadViewIncrement(IAsyncResult 结果)在 BlueForums.Blue.BlueClient.OnEndThreadViewIncrement(IAsyncResult 结果)在 System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult 结果)}

我尝试附加我自己的服务行为来捕获消息,它看起来就像是silverlight,它实际上是在调用服务器。

有人有什么想法吗?

【问题讨论】:

  • 你有自己的ServiceHost吗?可能是超时问题。
  • 它托管在 IIS 中,所以请确保它负责服务主机
  • 我也打开了 wcf 跟踪,但根本没有显示任何调用

标签: .net silverlight wcf


【解决方案1】:

不幸的是,由于 Silverlight 沙盒,您将收到针对您的 Web 服务发生的 ANY 错误的 NotFound 错误。因此,如果您想知道真正的错误是什么,您必须打开 Web 服务跟踪。

【讨论】:

    【解决方案2】:

    我发现fiddler很有帮助,学习如何使用它,它可以为你节省很多时间

    【讨论】:

      【解决方案3】:

      我之前也遇到过这个问题,好像只有IE才会出现。

      如果服务必须超时、断开连接、回收(IIS 在服务未被访问时回收该服务)或只是失去连接,则 IE 将不再尝试联系 WCF 服务,即使您重新启动服务也是如此。

      最近我开始使用 IE9 RC,这个问题似乎已经修复。无论如何,如果 silverlight 应用程序曾经尝试联系服务器,并且由于某种原因它不可用,那么从那时起的每个调用都会失败,不仅失败,而且 IE 甚至不会尝试联系您的服务。

      因此,为什么登录 WCF 根本不会显示呼叫,在 firefox 中,使用 firebug,您将看到 silverlight 应用程序在您 10 分钟左右后尝试拨打电话。

      试试看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-27
        • 1970-01-01
        • 1970-01-01
        • 2011-08-27
        • 1970-01-01
        • 2011-11-15
        • 2014-01-02
        相关资源
        最近更新 更多