Как вызвать следующий метод WCF-RIA Services из javascript - PullRequest
0 голосов
/ 08 декабря 2011

В нашей доменной службе есть следующая операция 'Invoke':

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).Глядя на вызов (в fiddler) от клиента Silverlight, я вижу, что мне нужно POST к URL 'SubmitChanges'.Но клиент silverlight использует двоичную конечную точку, и я не вижу, как выглядит содержимое сообщения POST.

Кто-нибудь знает, как это сделать?Или же можно выполнить «обратный инжиниринг» кода Silverlight, либо получив исходный код, либо расшифровав двоичное закодированное содержимое сообщения POST?

(Нам удается успешно вызывать операции «CRUD» (http://stackoverflow.com/questions/8179504/how-to-insert-entity-over-wcf-ria-services-json-endpoint),но эта операция 'Invoke' все еще остается загадкой)

EDIT ---

сообщение об ошибке на сервере, содержимое сообщения wenn der POST =

{
"Url":"http://www.bbc.co.uk/",
"Title":"a title",
"Description":"adesc"
}

{"ErrorCode": 500," ErrorMessage ":" Ссылка на объект не установлена ​​для экземпляра объекта. "," IsDomainException ": false," StackTrace ":" at System.ServiceModel.DomainServices.Hosting.ChangeSetProcessor.CreateChangeSet (IEnumerable 1 changeSetEntries)\u000d\u000a at System.ServiceModel.DomainServices.Hosting.ChangeSetProcessor.Process(DomainService domainService, IEnumerable1 changeSetEntries) \ u000d \ u000a в System.ServiceModel.DomainServices.Hosting.SubmitOperationBehavior.SubmitOperationInvoker.InvokeCore (экземпляр объекта, входы Object [], объект [] & output) "}

Ответы [ 2 ]

0 голосов
/ 09 декабря 2011

Существует плагин для Fiddler, который позволит вам проверять двоичные сообщения, отправленные клиентом SL: Двоичный инспектор WCF

0 голосов
/ 08 декабря 2011

Как выглядит ваша конфигурация конечной точки WCF?Я предполагаю, что он использует TcpBinary, и, таким образом, вы НЕ сможете просто «перепроектировать» его, так как вокруг также есть много SOAP-обработчиков сообщений ...

Я бы предложил добавить новую конечную точку WCFнастроенный для JSON, таким образом вы сможете вызывать один и тот же метод, но с разных клиентов на разных конечных точках.

...