【问题标题】:Simple WCF Webservice Call from Silverlight (Need Help Please!)来自 Silverlight 的简单 WCF Web 服务调用(需要帮助!)
【发布时间】:2010-05-17 08:49:42
【问题描述】:

总的来说,我是 Silverlight 编程和网络的新手,我整天都在努力寻找答案。我正在尝试在 VS2010 中构建一个非常简单的 Silverlight4 Web 应用程序,它调用 ASP.NET 网站上的 Web 服务(与 Silverlight 客户端应用程序完全相同的解决方案,所以不应该有任何跨域问题???)。我使用 VS 的“启用 Silverlight 的 WCF 服务”编写了一个 Web 服务,它只返回一个字符串。

然后我编写了在 Silverlight 中使用服务的代码:

公共主页() { 初始化组件();

        TestServiceClient proxy = new TestServiceClient();
        EndpointAddress address = new EndpointAddress("http://localhost:" + HtmlPage.Document.DocumentUri.Port +
            "/SilverlightApplication1.web/TestService.svc");

        proxy.Endpoint.Address = address;
        proxy.GetStringCompleted += new EventHandler<GetStringCompletedEventArgs>(proxy_GetStringCompleted);
        proxy.GetStringAsync();

    }

    void proxy_GetStringCompleted(object sender, GetStringCompletedEventArgs e)
    {
        MessageBox.Show(e.Result.ToString());
    }

当我从 VS2010 运行它时效果很好。但是,当我将其发布到同一台计算机上的个人网络服务器 (IIS7) 时,出现错误:

网页错误详情

用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0 ;OfficeLiveConnector.1.4;OfficeLivePatch.1.3;.NET4.0C;.NET4.0E) 时间戳:2010 年 5 月 17 日星期一 08:29:51 UTC

消息:Silverlight 应用程序中出现未处理的错误 操作过程中发生异常,导致结果无效。检查 InnerException 以获取异常详细信息。在 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary() 在 SilverlightApplication1.TestServiceReference1.GetStringCompletedEventArgs.get_Result() 在 SilverlightApplication1.MainPage.proxy_GetStringCompleted(对象发送者,GetStringCompletedEventArgs e) 在 SilverlightApplication1.TestServiceReference1.TestServiceClient.OnGetStringCompleted(对象状态) 线路:1 字符:1 代码:0 网址:http://thunder.webhop.org:8001/home.html

当我在 App.xaml.cs 中捕获异常时,我收到以下消息:

System.InvalidOperationException:评估失败。 在 System.Windows.Browser.HtmlWindow.Eval (字符串代码) 在 SilverlightApplication1.App.ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)

我应该提到网络服务器似乎工作正常。我可以通过端口 8001 在其上托管 Silverlight 应用程序而不会出现任何问题。我一生都无法弄清楚如何进行成功的 Web 服务调用!对此的任何帮助将不胜感激。我为此浪费了整个下午和晚上。我的脑子现在在转圈……:-(

提前非常感谢! 运气

附:很抱歉在 Silverlight 论坛上发帖,但发帖时出现了一些问题。

【问题讨论】:

    标签: wcf silverlight


    【解决方案1】:

    我猜这实际上与 Web 服务调用无关,因为 App.cs 中捕获的异常说明了“Eval failed”。 我认为这可能是您的 proxy_GetStringCompleted 处理程序中的代码。 MessageBox.Show 只不过是幕后的 JavaScript 警报。也许您使用的浏览器激活了 JavaScript 拦截器或类似功能?反正;你可以尝试的是简单地使用 MessageBox.Show() 以外的东西,例如

    (new ChildWindow { Content = new TextBlock { Text = e.Result.ToString() } }).Show();
    

    .

    干杯,亚历克斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-31
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多