我們的域名服務的WCF RIA服務方法具有以下「調用」操作撥打:如何以下從JavaScript
public void SaveImportedUrl(CRIAImportedUrl i_importedUrl)
public class CRIAImportedUrl
{
[Key]
public Uri Url { get; set; }
public string Title { get; set; }
public string Description { get; set; }
// ... more properities
}
我想從一個JavaScript客戶端調用這個(在JSON終點)。 通過查看silverlight客戶端的調用(在fiddler中),我可以看到我需要POST到'SubmitChanges'url。但是Silverlight客戶端使用二進制端點,並且我看不到POST消息的內容是什麼樣子。
有誰知道如何做到這一點?或者是否可以通過獲取源代碼或解碼二進制編碼的POST消息內容來「逆向工程」Silverlight代碼?
(我們成功地調用'CRUD'操作(http://stackoverflow.com/questions/8179504/how-to-insert-entity-over-wcf-ria-services-json-endpoint),但是這個'調用' 操作仍是一個謎)
EDIT ---
錯誤消息馮服務器,WENN DER POST消息內容=
{
"Url":"http://www.bbc.co.uk/",
"Title":"a title",
"Description":"adesc"
}
{ 「錯誤碼」 500 「的ErrorMessage」: 「對象引用未設置爲對象的實例」,「IsDomainException」:false,「StackTrace」:「at System.ServiceModel.Doma inServices.Hosting.ChangeSetProcessor.CreateChangeSet(IEnumerable的1 changeSetEntries)\u000d\u000a at System.ServiceModel.DomainServices.Hosting.ChangeSetProcessor.Process(DomainService domainService, IEnumerable
1 changeSetEntries)\ u000d \ u000a在System.ServiceModel.DomainServices.Hosting.SubmitOperationBehavior.SubmitOperationInvoker.InvokeCore(Object實例,對象[]輸入,對象[] &輸出)「}
沒有爲小提琴手一個插件,可以讓你檢查由SL客戶端發送的二進制消息:HTTP: //archive.msdn.microsoft.com/wcfbinaryinspector – TheNextman
非常有幫助 - 謝謝。我認爲你應該寫這個答案,而不是僅僅作爲評論添加。 – GarethOwen