【发布时间】: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