【发布时间】:2010-09-01 16:45:45
【问题描述】:
我有一个正常的 .asmx Web 服务,可以在浏览器中正常加载。当我加载包含 Silverlight 应用程序的网页时,数据不会加载,并且我收到一个 javascript 错误,其中指出;
网页错误详情
用户代理:Mozilla/4.0(兼容; MSIE 8.0;视窗 NT 6.1;三叉戟/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;媒体中心PC 6.0; .NET4.0C; .NET4.0E) 时间戳:2010 年 9 月 1 日,星期三 16:43:32 世界标准时间
消息:未处理的错误 Silverlight 应用程序异常 操作过程中发生,使得 结果无效。查看 异常详细信息的 InnerException。 在 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary() 在 Operations.Dashboard.DashboardMetrics.GetP200MA_CountCompletedEventArgs.get_Result() 在 Operations.Dashboard.MainPage.client_GetP200MA_CountCompleted(对象 发件人, GetP200MA_CountCompletedEventArgs e)
在 .Operations.Dashboard.DashboardMetrics.MetricsSoapClient.OnGetP200MA_CountCompleted(对象 状态)行:1 字符:1 代码:0 URI: http://ukhqdevmp-3790:8080/ChartTestPage.aspx消息:未处理的错误 Silverlight 应用程序异常 操作过程中发生,使得 结果无效。查看 异常详细信息的 InnerException。 在 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary() 在 Operations.Dashboard.DashboardMetrics.GetP200C_CountCompletedEventArgs.get_Result() 在 Operations.Dashboard.MainPage.client_GetP200C_CountCompleted(对象 发件人, GetP200C_CountCompletedEventArgs e)
在 Operations.Dashboard.DashboardMetrics.MetricsSoapClient.OnGetP200C_CountCompleted(对象 状态)行:1 字符:1 代码:0 URI: http://ukhqdevmp-3790:8080/ChartTestPage.aspx
它在 VS 中运行良好,但是当通过 IIS 从另一台 PC 访问它时,它不起作用。
MetricsSoapClient client = new MetricsSoapClient();
client.GetP200C_CountCompleted += new EventHandler<DashboardMetrics.GetP200C_CountCompletedEventArgs>(client_GetP200C_CountCompleted);
client.GetP200C_CountAsync(yearStart, yearEnd);
client.GetP200MA_CountCompleted += new EventHandler<DashboardMetrics.GetP200MA_CountCompletedEventArgs>(client_GetP200MA_CountCompleted);
client.GetP200MA_CountAsync(yearStart, yearEnd);
public void client_GetP200C_CountCompleted(object sender, DashboardMetrics.GetP200C_CountCompletedEventArgs e)
{ ...
更新:使用 Fiddler,我可以看出这是一个安全问题,我猜是双跳问题。
用户“DOMAIN\UKHQDEVMP-3790$”登录失败。
【问题讨论】:
-
你能贴出你用来初始化网络服务调用的代码吗?
-
如果你想要任何有用的东西,听起来你也需要发布 InnerException 的内容。
-
@Kelsey - 我创建了一个新的 Silverlight 4 项目(以及相关的 Web 应用程序来托管它)。在 Web 应用程序中,我创建了一个 Web 服务来使用 Linq 从数据库中发布数据。然后我使用下面的代码在我的 MainPage.xaml.cs 中使用它。
-
MetricsSoapClient 客户端 = 新 MetricsSoapClient(); client.GetP200C_CountCompleted += new EventHandler
(client_GetP200C_CountCompleted); client.GetP200C_CountAsync(yearStart, yearEnd); client.GetP200MA_CountCompleted += new EventHandler (client_GetP200MA_CountCompleted); client.GetP200MA_CountAsync(yearStart, yearEnd); public void client_GetP200C_CountCompleted(object sender, DashboardMetrics.GetP200C_CountCompletedEventArgs e) { ... } -
您应该在发布更多信息时编辑您的原始问题。我已将您的代码移至您的问题中。请注意您的代码和我在下面发布的代码的区别。确保你的 Uri 是正确的。尝试像我一样实例化您的 Web 服务并包含所有详细信息。我认为您的网络服务指向本地或相对地址,因此移动它会导致事情中断。