atul
atul

Reputation: 143

WCF IS One Way attribute

I am having a wcf method which has got isoneway attribute set to true.Now when i call this service from client ,service is throwing an invalid operation exception back to the client bcos of some business scenario going wrong.My understanding was that it will throw only endpointnotfound exception and timeoutexception.Can someone please explain why thats happening ?

Upvotes: 0

Views: 963

Answers (2)

zendu
zendu

Reputation: 1216

Does the OneWay method return a value or has ref/out parameter? If yes, then that's the reason you are getting InvalidOperationException. This is expected behavior as per MSDN help for OperationContractAttribute.IsOneWay Property (http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.isoneway(v=vs.110).aspx).

Look for remarks section, it has following text:

One-way methods must not return a value or have ref or out parameters; otherwise a System.InvalidOperationException exception is thrown.

PS: I know it's too late to reply to the thread, but for someone like me who stumbles across the post after 3 years or so, it might be useful.

Upvotes: 1

tomasr
tomasr

Reputation: 13849

Marking your contract as One-Way means exactly that: messages flow in one way only. Clients won't get an answer or wait for the service to execute at all, so there's no way that your client could possibly get a reply or fault from the service most of the time.

If you want that, then maybe a One-Way service isn't for you and what you really want is a two-way service with an empty reply (i.e. void)

Upvotes: 2

Related Questions