2010-09-01 76 views
0

我有一個正常的.asmx web服務,可以在瀏覽器中正常加載。當我加載其中的Silverlight應用程序的網頁,數據不會加載,我得到一個JavaScript錯誤,說明;在Silverlight中使用Web服務

網頁錯誤的詳細信息

用戶代理: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;媒體中心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)
在 操作.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:使用招,我可以看到,這是一個安全問題,我猜雙跳一個。

用戶'DOMAIN \ UKHQDEVMP-3790 $'登錄失敗。

+1

你可以發佈你用它來初始化Web服務調用的代碼? – Kelsey 2010-09-01 16:49:23

+1

聽起來就像你需要發佈InnerException的內容,如果你想要任何有用的東西。 – 2010-09-01 16:49:47

+0

@凱爾西 - 我創建了一個新的Silverlight 4項目(和相關的Web應用程序來承載它)。在Web應用程序中,我創建了一個Web服務來使用Linq從數據庫發佈數據。 然後我使用下面的代碼在我的MainPage.xaml.cs中使用它。 – sparkymark75 2010-09-01 17:59:18

回答

0

首先,你應該驗證當你將它移動到另一臺PC時,你的webservice地址是正確的,而你並沒有試圖連接到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)); 
+0

當我將服務引用添加到Silverligfht項目中時,它會根據上面的代碼註釋添加所有方法。然後我使用這些來添加我的渲染邏輯。 – sparkymark75 2010-09-01 18:02:10