WCF Rest Service med POST returnerer ikke noget fra HTML form
Jeg forsøger at lave min første simple REST service der skal modtage data via POST fra en html form. Jeg har fulgt et par forskellige guides men resultatet er det samme hver gang både på localhost og på min webserver (Unoeuro) - jeg burde modtage en tekststreng som svar men får istedet en blank side. ISS giver ingen fejl, jeg builder og debugger uden problemer og VS2010 fortæller mig at servicen er tilføjetJeg er efterhånden desperat - jeg er i gang med et projekt der snart skal være færdigt og en service er en lille men temmelig central del i det. Jeg vil være taknemlig for enhver hjælp.
Interface i IMyService.cs
namespace WCF_Rest_Based
{
[ServiceContract]
public interface IMyService
{
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "GetData")]
string GetData(Stream data);
}
}
Implementering i MyService.svc
namespace WCF_Rest_Based
{
public class MyService : IMyService
{
public string GetData(Stream input)
{
string body = new StreamReader(input).ReadToEnd();
NameValueCollection nvc = HttpUtility.ParseQueryString(body);
return nvc["Test"];
}
}
}
HTML form
<form id="contact-form" action="http://www.domæne.dk/MyService.svc/GetData" method="post">
<input name="Test" type="text" value="pong" />
<input type="submit" />
</form>
Web config
<system.serviceModel>
<services>
<service name="WCF_Rest_Based.MyService" behaviorConfiguration="myServiceBehavior" >
<endpoint name="webHttpBinding"
address="" binding="webHttpBinding"
contract="WCF_Rest_Based.IMyService"
behaviorConfiguration="webHttp"
>
</endpoint>
<endpoint name="mexHttpBinding"
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="myServiceBehavior" >
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttp">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"
minFreeMemoryPercentageToActivateService="0" />
</system.serviceModel>