【问题标题】:How to call following the WCF-RIA Services method from javascript如何从 javascript 调用遵循 WCF-RIA 服务方法
【发布时间】:2011-12-08 13:23:37
【问题描述】:

我们的域服务具有以下“调用”操作:

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 客户端的调用(在提琴手中),我可以看到我需要 POST 到“SubmitChanges”网址。但是 silverlight 客户端使用二进制端点,我看不到 POST 消息的内容。

有人知道怎么做吗?或者是否可以通过获取源代码或解码二进制编码的 POST 消息内容来“逆向工程”silverlight 代码?

(我们成功地调用了“CRUD”操作(http://stackoverflow.com/questions/8179504/how-to-insert-entity-over-wcf-ria-services-json-endpoint),但是这个' Invoke 的操作仍然是个谜)

编辑---

错误消息 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。 CreateChangeSet(IEnumerable1 changeSetEntries)\u000d\u000a at System.ServiceModel.DomainServices.Hosting.ChangeSetProcessor.Process(DomainService domainService, IEnumerable1 changeSetEntries)\u000d\u000a at System.ServiceModel.DomainServices.Hosting.SubmitOperationBehavior.SubmitOperationInvoker.InvokeCore(Object instance, Object[] inputs, Object[]& outputs)"}

【问题讨论】:

  • 有一个 Fiddler 插件可以让您检查 SL 客户端发送的二进制消息:archive.msdn.microsoft.com/wcfbinaryinspector
  • 非常有帮助 - 谢谢。我认为您应该将其写为答案,而不仅仅是添加为评论。

标签: javascript json wcf-ria-services


【解决方案1】:

有一个 Fiddler 插件可以让您检查 SL 客户端发送的二进制消息:WCF Binary Inspector

【讨论】:

  • 谢谢,这有帮助。而且,我发现 silverlight 论坛似乎是 WCF-RIA 问题的更好资源。
【解决方案2】:

您的 WCF 端点配置是什么样的?我猜它正在使用 TcpBinary,因此您将无法仅对它进行“逆向工程”,因为周围还有很多 SOAP 处理消息...

我建议添加一个为 JSON 配置的新 WCF 端点,这样您就可以调用完全相同的方法,但可以从不同端点的不同客户端调用。

【讨论】:

  • 感谢 Leon - 我们已经有一个 JSON 端点,我们可以成功调用它来进行其他 CRUD 操作。但不是这种类型的“调用”操作。
  • 那么当您发布到“调用”操作时,WCF 跟踪日志会显示什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 2017-11-29
相关资源
最近更新 更多