Я создаю веб-сервис WCF и задерживаюсь в методах Post & Put. Эти методы не работают, тогда как метод Get и метод Delete работают нормально и обеспечивают правильный вывод. Я предоставил.edmx и подключился к базе данных, используя ее. Пытался написать много строк в WebConfig, чтобы заставить его работать, но никто не работал. Надеюсь получить решение отсюда. Заранее спасибо.
Класс IService.cs содержит следующее: Iservice1.cs
[OperationContract] [WebInvoke(Method = "Post", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "Postmovie")] CompositeType PostUpdatemovie(MovieTbl tbl);
И Service.svc.cs содержит следующее:
public CompositeType PostUpdatemovie(MovieTbl tbl) { CompositeType obj = new CompositeType(); //objmovie.Status // objmovie.TorrentID return obj; }
попробуйте обновить свой webconfig следующим образом:
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service behaviorConfiguration="Default"
name="Service1">
<endpoint address="" behaviorConfiguration="webBehavior"
binding="webHttpBinding"
contract="IService1" />
<endpoint address="/netclients" bindingName="basicBinding" binding="basicHttpBinding" contract="IService1" />
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="basicBinding" />
</basicHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp helpEnabled="true" />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="Default">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
и ваш метод:
[OperationContract]
[WebInvoke(Method = "Post", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, UriTemplate = "/Postmovie")]
CompositeType PostUpdatemovie(MovieTbl tbl);