我们的域名服务具有以下“调用”操作:
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'网址。但是silverlight客户端使用二进制端点,我无法看到POST消息的内容是什么样的。
有谁知道怎么做?或者是否可以通过获取源代码或解码二进制编码的POST消息内容来“逆向工程”silverlight代码?
(我们设法成功调用'CRUD'操作(http://stackoverflow.com/questions/8179504/how-to-insert-entity-over-wcf-ria-services-json-endpoint),但是这个'调用“操作仍然是个谜”
EDIT ---
错误消息von server,wenn der POST message contents =
{
"Url":"http://www.bbc.co.uk/",
"Title":"a title",
"Description":"adesc"
}
{“ErrorCode”:500,“ErrorMessage”:“对象引用未设置为对象的实例。”,“IsDomainException”:false,“StackTrace”:“在System.ServiceModel.DomainServices.Hosting.ChangeSetProcessor。 System.ServiceModel.DomainServices.Hosting.SubmitOperationBehavior.SubmitOperationInvoker.InvokeCore(Object instance,Object [] inputs,Object []& outputs)“}
1 changeSetEntries)\u000d\u000a at System.ServiceModel.DomainServices.Hosting.ChangeSetProcessor.Process(DomainService domainService, IEnumerable 1 changeSetEntries)\ u000d \ u000a >答案 0 :(得分:0)
您的WCF端点配置是什么样的?我猜测它正在使用TcpBinary,因此你将无法对其进行“反向工程”,因为还有很多SOAP处理消息可供使用......
我建议添加一个为JSON配置的新WCF端点,这样您就可以从不同的端点的不同客户端调用完全相同的方法。
答案 1 :(得分:0)
Fiddler有一个插件可以让您检查SL客户端发送的二进制消息:WCF Binary Inspector