我有一个正常的.asmx网络服务,可以在浏览器中正常加载。当我加载其中包含Silverlight应用程序的网页时,数据不会加载,我收到一个javascript错误,说明了这一点;
网页错误详情
用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1;三叉戟/ 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) 时间戳:2010年9月1日星期三16:43:32 UTC
消息:未处理的错误 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)
{ ...
UPDATE :使用Fiddler,我可以看到这是一个安全问题,我猜的是双跳一个。
用户'DOMAIN \ UKHQDEVMP-3790 $'登录失败。
答案 0 :(得分:0)
首先,您应该验证当您将其移动到另一台PC时,您的Web服务地址是正确的,并且您没有尝试连接到localhost
或与Visual Studio环境相关的内容。
我记得有这个问题,但非常模糊,我不记得我的解决方案是什么,所以我回过头来看一下以前项目的代码以及如何设置Web服务。这是一个很长的镜头,但如果Web服务设置不正确,我的代码可能会帮助您指明正确的方向。检查我的以下行,看看它是否对任何事情有帮助(这是用Silverlight 3完成的):
Uri uri = new Uri(Application.Current.Host.Source,
"../Services/YourWebService.asmx");
// notice this line is commented out and a * is used for biniding instead
//System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding(); // "*"
YourWebService.YourWebServiceSoapClient =
new YourWebService.YourWebServiceSoapClient("*",
new System.ServiceModel.EndpointAddress(uri));