我是新来的Silverlight编程和网络的一般,我一直在试图找到一个这一整天的答案。我试图在VS2010中构建一个非常简单的Silverlight4 Web应用程序,该应用程序在ASP.NET网站上调用Web服务(与Silverlight客户端应用程序完全相同的解决方案,因此不应该存在任何跨域问题???)。我写了一个使用VS'“启用Silverlight的WCF服务的Webservice,它只是返回一个字符串。简单的WCF Web服务从Silverlight调用(需要帮助请!)
我然后写的代码以消耗在Silverlight服务:))
公共的MainPage( { 的InitializeComponent(;
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年五月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 URI:http://thunder.webhop.org:8001/home.html
当我赶在App.xaml.cs例外,我得到以下信息:
System.InvalidOperation例外:评估失败。 在System.Windows.Browser.HtmlWindow.Eval(字符串代码) 在 SilverlightApplication1.App.ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs E)
我应该提到的是,Web服务器,否则似乎做工精细。我可以通过端口8001在其上托管Silverlight应用程序,而不会有任何问题。我不能在我的生活中弄清楚如何进行成功的web服务调用!任何帮助将非常感谢。我浪费了整整一个下午和晚上的时间。我的心在现在圈翻转...... :-(提前
很多很多的感谢! 运气
PS道歉在Silverlight的论坛交叉发布,但有一些问题存在,同时发布。