我一直在构建 WCF Web 服务,并被困在 Get 工作正常的 Post & Put 方法中。我在其中提供了 .edmx。有啥解决办法吗?

Posted

技术标签:

【中文标题】我一直在构建 WCF Web 服务,并被困在 Get 工作正常的 Post & Put 方法中。我在其中提供了 .edmx。有啥解决办法吗?【英文标题】:I've been building a WCF web-service and am stucked at Post & Put methods where Get works fine.I've provided .edmx in it. Any solution?我一直在构建 WCF Web 服务,并被困在 Get 工作正常的 Post & Put 方法中。我在其中提供了 .edmx。有什么解决办法吗? 【发布时间】:2014-09-06 18:45:33 【问题描述】:

我一直在构建 WCF Web 服务,但我一直在使用 Post & Put 方法。这些方法不起作用,而 Get 方法和 Delete 方法可以正常工作并提供正确的输出。我在其中提供了 .edmx 并使用它连接到数据库。尝试在 WebConfig 中编写许多行以使其工作,但没有工作。希望从这里得到解决方案。提前致谢。

我的 IService.cs 类包含这个: iservice1.cs

[运营合同] [WebInvoke(方法 = “发布”,ResponseFormat = WebMessageFormat.Json,RequestFormat = WebMessageFormat.Json,BodyStyle = WebMessageBodyStyle.Wrapped,UriTemplate = “Postmovie”)] CompositeType PostUpdatemovie(MovieTbl tbl);

Service.svc.cs 包含以下内容:

公共 CompositeType PostUpdatemovie(MovieTbl tbl) CompositeType obj = new CompositeType(); //objmovie.状态 // objmovie.TorrentID 返回对象;

【问题讨论】:

【参考方案1】:

尝试如下更新您的网络配置:

    <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);

【讨论】:

以上是关于我一直在构建 WCF Web 服务,并被困在 Get 工作正常的 Post & Put 方法中。我在其中提供了 .edmx。有啥解决办法吗?的主要内容,如果未能解决你的问题,请参考以下文章

WCF 服务 - 运行时看不到接口上的 ServiceContract

Linux 上的 WCF - 值得付出努力吗

App force close thenewboston android教程

WCF HandleError System.InvalidOperationException 一个任务只有在它处于完成状态时才能被释放

我被困在运行 gradle 任务“assembledebug”

我被困在递归地实现基数排序