lukapril
16 years agoOccasional Contributor
WCF: How to pass DemarcatingOperation - IsInitiating attribute between requests
Hi,
I'm trying to use soapUI 3.5 Beta 2 to perform 2 requests to my web service, which use soap, WCF. I've enabled WS-A setting in soapUI and was able to send the first request (login) and receive the response correctly. However, the 2nd request (search) failed:
http://schemas.microsoft.com/net/2005/1 ... cher/fault
uuid:cfb121be-26b7-45c5-a131-092942bfb71d
The operation 'Search' cannot be the first operation to be called because IsInitiating is false.
The operation 'Search' cannot be the first operation to be called because IsInitiating is false.
at Commons.ServiceModel.DemarcatingOperationAttribute.DemarcationValidator.Invoke(Object instance, Object[] inputs, Object[]& outputs)<br /> at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
System.InvalidOperationException
After I talked to the developer, he said that in the web service, after the login request is sent, the IsInitiating attribute of the WCF demarcation tag is set. This is to ensure that login is always the first request. Here is the WCF Demarcation declaration:
[OperationContract, DemarcatingOperation(IsInitiating = true)]
LoginToAppResponse Login(LoginToAppRequest LoginRequest);
[OperationContract, DemarcatingOperation(IsInitiating = false)]
SearchAppResponse Search(SearchAppRequest SearchRequest);
When I executed these 2 requests in a row, the search request didn't 'recognize' the login request, hence giving me an error because it thought that the search request is the first (or standalone) request? I'm wondering does soapUI handles WCF web services with Demarcation setting? Is this something I can configure?
Thanks!
I'm trying to use soapUI 3.5 Beta 2 to perform 2 requests to my web service, which use soap, WCF. I've enabled WS-A setting in soapUI and was able to send the first request (login) and receive the response correctly. However, the 2nd request (search) failed:
s:Receiver
a:InternalServiceFault
at Commons.ServiceModel.DemarcatingOperationAttribute.DemarcationValidator.Invoke(Object instance, Object[] inputs, Object[]& outputs)<br /> at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)<br /> at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
After I talked to the developer, he said that in the web service, after the login request is sent, the IsInitiating attribute of the WCF demarcation tag is set. This is to ensure that login is always the first request. Here is the WCF Demarcation declaration:
[OperationContract, DemarcatingOperation(IsInitiating = true)]
LoginToAppResponse Login(LoginToAppRequest LoginRequest);
[OperationContract, DemarcatingOperation(IsInitiating = false)]
SearchAppResponse Search(SearchAppRequest SearchRequest);
When I executed these 2 requests in a row, the search request didn't 'recognize' the login request, hence giving me an error because it thought that the search request is the first (or standalone) request? I'm wondering does soapUI handles WCF web services with Demarcation setting? Is this something I can configure?
Thanks!