Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自Silverlight的简单WCF Web服务呼叫(需要帮助!)_Wcf_Silverlight - Fatal编程技术网

来自Silverlight的简单WCF Web服务呼叫(需要帮助!)

来自Silverlight的简单WCF Web服务呼叫(需要帮助!),wcf,silverlight,Wcf,Silverlight,我对Silverlight编程和网络一般来说都是新手,我整天都在试图找到答案。我正在尝试在VS2010中构建一个非常简单的Silverlight4 web应用程序,它在ASP.NET网站上调用与Silverlight客户端应用程序完全相同的解决方案,因此不应该存在任何跨域问题???。我使用VS的支持Silverlight的WCF服务编写了一个Web服务,该服务只返回一个字符串 然后,我编写了在Silverlight中使用服务的代码: 公共主页 { 初始化组件 TestServic

我对Silverlight编程和网络一般来说都是新手,我整天都在试图找到答案。我正在尝试在VS2010中构建一个非常简单的Silverlight4 web应用程序,它在ASP.NET网站上调用与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运行它时,效果非常好。但是,当我将它发布到同一台计算机上的个人Web服务器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.RaiseException 在SilverlightApplication1.TestServiceReference1.GetStringCompletedEventArgs.get\u结果 在SilverlightApplication1.MainPage.proxy_GetStringCompletedObject发送方,GetStringCompletedEventArgs e 在SilverlightApplication1.TestServiceReference1.TestServiceClient.OnGetStringCompletedObject状态下 行:1 字符:1 代码:0 URI:

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

System.InvalidOperationException:评估失败。 位于System.Windows.Browser.HtmlWindow.Eval字符串代码 在 SilverlightApplication1.App.ReportErrorToDomainApplicationUnhandledExceptionEventTargets e

我应该提到的是,Web服务器在其他方面似乎工作正常。我可以通过端口8001在其上托管Silverlight应用程序,没有任何问题。我一辈子都不知道如何成功地拨打Web服务电话!如果能帮上忙,我将不胜感激。我已经为此浪费了一整个下午和晚上。我的脑子都乱了正在打圆圈…:-

非常非常感谢! 运气


另外,对于在Silverlight论坛上交叉发帖表示歉意,但发帖时出现了一些问题。

我想这实际上与web服务调用无关,因为App.cs中捕获的异常表示Eval失败。 我想这可能是您的proxy_GetStringCompleted handler.MessageBox.Show中的代码。Show只不过是幕后的JavaScript警报。也许您使用的浏览器激活了JavaScript阻止程序之类的东西?无论如何,您可以尝试使用MessageBox.Show以外的其他东西,例如

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

干杯,亚历克斯