我有一個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)。
任何指針,將不勝感激。
你試圖返回CustomerHistory列表只看到是否可行? – thomasmartinsen 2010-12-15 06:57:07
您是使用服務參考還是Web參考? – 2010-12-15 18:51:49