I am using version 220.127.116.11 of Open Ria Services and have a weird behavior when submitting changes on a single entity Insert.
My DomainService Insert Method is being called multiple times (7-8)...
That is not a failure mode I have heard of before. To begin with, I would start with a tool like Fiddler to see what is being sent to the DomainService. What I am interested in knowing is if there are multiple rows in the changeset, or if the DomainService itself is being called multiple times.
I use a brand new ObjectContext, inserting the entity to be added, then proceeding to SubmitChanges (using a TaskCompletionSource to provide await/async pattern -- Upgrading to 18.104.22.168 is absolutely not an option)
Using Fiddler confirms that : Single entity being sent, entity being saved successfully (I'm checking the context to see if it has not been inserted already, to bypass the multiple insert call), but the service sends a 504 error ([Fiddler] ReadResponse() failed: The server did not return a response for this request. Server returned 0 bytes)
I'm using Ria Services on SL Client 5
I cannot check wether other insert methods have the same problem (over 50 tables), but previous calls to SubmitChanges (in a SaveSingleAsync extension method) on other entities don't show that error.
I am curious why you can't update to 22.214.171.124 although I don't know if it would make any difference.
The code is pretty straightforward in the DomainService. It does a foreach looping through everything in the ChangeSet calling the appropriate CUD method. Have you looked in the DomainService's ChangeSet to see if there are multiple entries there? I would put breakpoints in other places in the DomainService to see if they are being called multiple times as well. For example, how often is PersistChangeset getting called? You can add an override to see that. Otherwise, if you can provide more source code or a sample project I can see if I can find what is happening.