Bug 17744 - WCF Web Service Function returning void throws NullReferenceException
Summary: WCF Web Service Function returning void throws NullReferenceException
Status: NEW
Alias: None
Product: Class Libraries
Classification: Mono
Component: WCF assemblies (show other bugs)
Version: 3.2.x
Hardware: PC Windows
: --- normal
Target Milestone: Untriaged
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2014-02-13 06:55 UTC by land79
Modified: 2015-01-04 19:41 UTC (History)
2 users (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments

Description land79 2014-02-13 06:55:09 UTC
consider a wcf service hosted inside an console application with following interface:

[OperationContract()]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
int IntFunction(string data);

[OperationContract()]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
void VoidFunction(string data);

calling IntFunction works.
calling VoidFunction throws NullReferenceException in WebMessageFormatter.cs
i think (not tested!) the problem is inside GetSerializer function:
if (part.Type == typeof (void))
return null; // no serialization should be done.

running same code with microsoft.net will work.

service config:
<system.serviceModel>
		<behaviors>
			<endpointBehaviors>
				<behavior name="RESTBehaviour">
					<webHttp/>
				</behavior>
			</endpointBehaviors>
			<serviceBehaviors>
				<behavior name="DefaultSvcBehaviour">
					<serviceMetadata httpGetEnabled="true"/>
					<serviceDebug includeExceptionDetailInFaults="True"/>
				</behavior>
			</serviceBehaviors>
		</behaviors>
		<services>
			<service name="ServiceName" behaviorConfiguration="DefaultSvcBehaviour">
				<endpoint address="" behaviorConfiguration="RESTBehaviour" binding="webHttpBinding" contract="ServiceContract">
				</endpoint>
			</service>

		</services>
	</system.serviceModel>

Note You need to log in before you can comment on or make changes to this bug.