2010-02-23 75 views
3

我有一個WCF方法,以便:Silverlight和WCF:未找到錯誤!

public string GetSomething(MyObject obj) 
    { 
     return "Something"; 
    } 

當我把這個從我的Silverlight應用程序我得到一個錯誤:
System.Net.WebException:遠程服務器返回錯誤:NOTFOUND .....

我調用該方法從我的Silverlight應用程序,像這樣:

 mProxy.GetSomethingAsync(new MyObject()); 

現在,當我調用該方法是這樣,它工作正常:

 mProxy.GetSomethingAsync(null); 

所以傳入複雜對象似乎存在一些問題。

請注意,我從其他方法返回此MyObject,它工作正常,所以它不是一個可序列化的問題。我也將maxBufferSize和maxReceivedMessageSize更改爲最大值,所以不是這樣,我仍然傳入一個空對象,所以它不應該是一個大小問題。而MyObject只包含簡單的數據類型。

有沒有人有任何建議?

+0

你有沒有設置在WCF代碼中設置斷點,並通過服務方法追蹤,看看是否有異常的地方越來越拋出?或者,WCF方法真的和你給的一樣簡單? –

回答

10

「未找到」錯誤可能是Silverlight WCF訪問最令人討厭的功能。

您可能需要查看服務跟蹤查看器工具(here)。這並不總是有幫助的(我遇到了許多無法解決的問題),但大約有10-20%的時間,這會讓我指向正確的方向。

您可能還想嘗試將SilverlightFaultBehavior添加到您的服務中。它可以將這些「未找到」錯誤消息中的至少一些轉化爲真正的錯誤。

+1

也使用Fiddler2來檢查你沒有遇到跨域問題。 –

+0

+1用於添加SilverlightFaultBehavior - 修復了我的問題。 –

+0

這完全適合我。將此標記爲答案! :) – Jordan