【问题标题】:Silverlight application not communicating with web service on serverSilverlight 应用程序未与服务器上的 Web 服务通信
【发布时间】:2012-05-25 10:38:39
【问题描述】:

我在笔记本电脑上本地开发了一个 Silverlight 应用程序。

一切正常,但是当我将它部署到服务器时,Web 服务运行良好,因为它与数据库通信并获得所需的结果。我的问题出在前端SL 应用程序上,它会出现此错误:

Debugging resource strings are unavailable

   at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
   at FrontEnd.WebService.UIDReturnCompletedEventArgs.get_Result()
   at FrontEnd.Views.Users.client_UIDReturnCompleted(Object sender, UIDReturnCompletedEventArgs e)
   at FrontEnd.WebService.Service1SoapClient.OnUIDReturnCompleted(Object state)
Caused by: [Async_ExceptionOccurred]
Arguments: 
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.1.10329.0&File=System.dll&Key=Async_ExceptionOccurred

所以我去了给定的链接,它说这是一个Async_ExceptionOccurred 错误。 这是时间问题吗? UIDReturn 是一种从数据库中取回用户 ID 的 Web 方法,这是在 Silverlight 页面的页面加载时启动的,我认为该值可能没有及时返回,因此这就是它崩溃的原因,但是这可行在本地和测试服务器上,所以可能是 IIS 问题?

这里是调用 Web 服务的地方-

 void OnLoadCompleted(object sender, RoutedEventArgs e)
    {
        string fullUserName = WebContext.Current.User.DisplayName;
        string userName = fullUserName.Substring(fullUserName.IndexOf('\\') + 1);


        WebService.Service1SoapClient client = new WebService.Service1SoapClient();

            client.UIDReturnCompleted += new EventHandler<UIDReturnCompletedEventArgs>(client_UIDReturnCompleted);
            client.UIDReturnAsync(userName);

    }

fullUserName 来自当前登录的用户,可能该值尚未加载,因此断开连接。

【问题讨论】:

  • 您可以发布您的代码/Xaml 吗?首次配置为运行可在本地正常运行的 Silverlight 应用程序(安全设置等)时,真实网站会出现错误的原因有很多
  • 感谢@HITech Magic 的输入,您需要哪个代码?它在初始化 Web 服务时的调用? crossdomain.xml 也会导致冲突吗?
  • crossdomain.xml 如果存在其他文件,则会被忽略。首先提供调用代码(如果您从代码调用服务)或包含数据上下文的 XAML(如果您使用声明性数据访问)。
  • @Jambo 您是否仔细检查了 ServiceReferences.ClientConfig 是否已使用正确的服务 URL 进行了更新,或者您是否动态绑定了 Web 服务的端点?

标签: c# silverlight iis asynchronous


【解决方案1】:

这似乎与我之前回答过的这个帖子有关:Consume WCF library in Silverlight 4 application

【讨论】:

  • 我在 IIS 的 Web 服务目录和服务器上的 wwwroot 中都有 crossdomain.xml 和 clientaccesspolicy.xml 文件。我可以通过访问 - localhost:10/crossdomain.xmllocalhost:10/clientaccesspolicy.xml 查看它们
  • @Jambo:如果您托管自己的网站,则只需要使用 Silverlight 的更现代的 clientaccesspolicy.xml 文件。 crossdomain.xml 如果存在其他文件,则不会使用并且只是为了与使用该文件的现有 Flash 网站兼容
猜你喜欢
  • 2017-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多