WCF POST服务器在处理请求时遇到错误。请参阅服务器日志以获取更多详

时间:2016-03-20 17:21:55

标签: c# wcf

好的,这让我疯了。

我创建了一个带有四个端点的WCF服务(其中三个使用GET,另一个使用POST)。

所有三个GET端点都正常工作,但我无法让POST端点工作。

我的界面:

[ServiceContract]
public interface IFiscalCidadaoWCF
{
    [OperationContract]
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetConveniosByCoordinate/{latitude}/{longitude}")]
    TelaInicialEnvioViewModel GetConveniosByCoordinate(string latitude, string longitude);

    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "FazerDenuncia")]
    string FazerDenuncia(string model); // this is the one

    [OperationContract]
    [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetConvenioById/{convenioId}")]
    ConvenioEnvioViewModel GetConvenioById(string convenioId);

    [OperationContract]
    [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetDenunciaByUsuario/{usuarioId}")]
    List<DenunciaEnvioViewModel> GetDenunciaByUsuario(string usuarioId);
}

我的服务实施:

 public string FazerDenuncia(string model)
 {            
     return "OK";
 }

Webconfig:

<system.serviceModel>
  <services>
    <service name="FiscalCidadaoWCF.FiscalCidadaoWCF">
      <endpoint address="../FiscalCidadaoWCF.svc" binding="webHttpBinding"    contract="FiscalCidadaoWCF.IFiscalCidadaoWCF"behaviorConfiguration="webBehaviour" />
    </service>
  </services>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled="true" />        
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="jsonBehavior">
    </behavior>
    <behavior name="webBehaviour">
      <webHttp />
    </behavior>
  </endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
    </customHeaders>
  </httpProtocol>
  <modules runAllManagedModulesForAllRequests="true" />
  <directoryBrowse enabled="true" />
</system.webServer>

我正在使用Postman和使用jQuery的客户端项目进行测试。两者都没有工作。

jQuery调用:

 var data2 = "weba";

 $.ajax({
    type: "POST",
    url: 'http://www.fiscalcidadao.site/FiscalCidadaoWCF.svc/FazerDenuncia',
    data: data2,
    success: function (data) {
        alert('working');
    },
    error: function (request, status, error) {
        alert('shut up');
    },
});

我收到错误“服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志”。 但是,如果我尝试不带参数调用,则端点返回“Ok”。

所以我的问题是:我应该在项目中更改什么才能使POST端点工作传递参数?或者我如何找到“服务器日志”以查看正在发生的事情?

0 个答案:

没有答案