2010-12-14 252 views
0

我有一個Visual Studio解決方案,包含一個Silverlight項目和一個託管Silverlight應用程序的Web項目。該Web項目還包含由Silverlight ap調用的ASMX Web服務。Silverlight4調用ASMX Web服務

如下所述,某些對Web服務的調用可以正常工作,而其他調用會導致拋出CommunicationException,幷包裝一個WebException - 這兩個消息都帶有消息「服務器返回以下錯誤:'未找到'」。

首先,這是我原來的方法,它未能按上述(實體名稱變更爲簡單起見):

[WebMethod] 
public Customer GetCustomer(int id) 
{ 
    CustomerDataContext dc = new CustomerDataContext(); 
    return dc.Customers.SingleOrDefault(x => x.Id == id); 
} 

其次,調試我把LINQ to SQL的問題和數據庫出來的圖片,和下面的代碼工作正常:

[WebMethod] 
public Customer GetCustomer(int id) 
{ 
    Customer c = new Customer() { ID=1, Name="Bob", History = new EntitySet<CustomerHistory>() }; 
    return c; 
} 

三,想着這個,這兩種方法之間的一個區別是,第一個將包括在客戶歷史價值。我延長了第二種方法包括這一點,並開始再次失敗:

[WebMethod] 
public Customer GetCustomer(int id) 
{ 
    Customer c = new Customer() { ID=1, Name="Bob", History = new EntitySet<CustomerHistory>() }; 
    c.History.Add(new CustomerHistory() { Id=1, CustomerId=1, Text="bla" }); 
    return c; 
} 

我堅持至於如何進步 - 我現在的想法是,這可能是對Silverlight的側反序列化的問題時,對象圖更深。這理性沒有道理,但我想不出別的。我已確認傳輸大小和緩衝區大小足夠大(默認情況下爲2GB)。

任何指針,將不勝感激。

+0

你試圖返回CustomerHistory列表只看到是否可行? – thomasmartinsen 2010-12-15 06:57:07

+0

您是使用服務參考還是Web參考? – 2010-12-15 18:51:49

回答