WCF Rest POST方法正在获取空json字符串

WCF Rest POST方法正在获取空json字符串,json,wcf,rest,Json,Wcf,Rest,WCF Rest POST始终获取空字符串。我已经花了一个多星期的时间去探索,但到目前为止没有运气 我的服务代码: [ServiceContract] public interface ISaveSurvey { [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,

WCF Rest POST始终获取空字符串。我已经花了一个多星期的时间去探索,但到目前为止没有运气

我的服务代码:

[ServiceContract]
public interface ISaveSurvey
{   
    [WebInvoke(Method = "POST",
           ResponseFormat = WebMessageFormat.Json,
           RequestFormat = WebMessageFormat.Json,               
           BodyStyle = WebMessageBodyStyle.Wrapped,
           UriTemplate = "/SSS")]        
    bool InsertSiteSurveyInfo(string jsonString);
}
Web配置:

    <compilation debug="false" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="Honeywell.HBS.SiteSurvey.SaveSurvey" behaviorConfiguration="SaveSurvey">
        <endpoint address="" binding="webHttpBinding" contract="Honeywell.HBS.SiteSurvey.ISaveSurvey" behaviorConfiguration="wcfRestBehavior"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SaveSurvey">
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
       <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="wcfRestBehavior">
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
      <bindings>
          <!-- Customizations for REST service -->
          <webHttpBinding>
              <binding name="ApiExportBinding" maxReceivedMessageSize="10485760"
                              maxBufferPoolSize="10485760" maxBufferSize="10485760">
                  <readerQuotas maxDepth="32" maxStringContentLength="10485760"
                                  maxArrayLength="10485760" maxBytesPerRead="10485760" />
                  <security mode="None" />
              </binding>
          </webHttpBinding>
      </bindings>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

客户端代码:

<script type="text/javascript" language="javascript">
    function testRest() {

        $.ajax({
            type: "POST",
            dataType: "json",
            url: "http://ie22ltjpsd4bs/SSTest/SaveSurvey.svc/SSS",
            contentType: "application/json",
            data: "{\"siteInformation\":{\"siteName\":\"Malar\",\"siteNumber\":\"123344555\",\"siteContactPerson\":\"test\",\"siteAddress\":\"test\",\"siteCity\":\"test\",\"sitePostalZipCode\":\"test\",\"siteTelephone\":1234576788,\"siteContractNumber\":\"asdfasdf\",\"siteHoneywellBranch\":\"asdfasdf\",\"siteFieldSiteLeader\":\"asdfasdf\",\"siteTeamLead\":\"asdfasdf\",\"siteTechnician\":\"asdfasdf\",\"equipments\":[{\"equipmentID\":\"BRANCH TOOL INVENTORY\",\"equipSiteContactTelephone\":12345678,\"equipDescription\":\"asdfasdf\",\"equipLocation\":\"asdfasdf\",\"equipSupervisionOrFrontEnd\":\"asdfasdf\",\"equipNumberOfStations\":12,\"equipMakeOrTypePC\":\"asdfasdf\",\"equipWindowsVersion\":\"asdfasdf\",\"equipManufacturer\":\"A C MOTOR\",\"equipManufacturerDateOrAge\":\"1979-12-31T18:30:00.000Z\",\"equipProductNameOrVersion\":\"asdfasdf\",\"equipGraphicSoftwareIncl\":\"No\",\"equipExistingSaveBackup\":\"Yes\",\"equipBackupSaveFormat\":\"\",\"equipLocalAccess\":\"asdfasdf\",\"equipPassword\":\"asdfasdfasdf\",\"equipRemoteAccess\":\"Modem\",\"equipAccessInfo\":\"asdfasdf\",\"equipSystemArchitecture\":\"Yes\",\"equipArchivedInAdept\":\"Yes\",\"equipOtherInformation\":\"asdfasdf\",\"controllersInformation\":[{\"controllerName\":\"asdfasdf\",\"controllerQuantity\":\"121\",\"controllerManufacturer\":\"asdfasdf\",\"controllerSoftwareProgram\":\"Yes\",\"controllerProductNameOrVersion\":\"asdfasdf\",\"controllerTypeOfProgram\":\"Interpreted\",\"controllerExistingSaveBackup\":\"Yes\",\"controllerBackUpSaveFormat\":\"\",\"controllerLocalAccess\":\"asdf\",\"controllerPassword\":\"asdf\",\"controllerRemoteAccess\":\"Modem\",\"controllerAccessInfo\":\"asdf\",\"controllerControlDrawings\":\"Yes\",\"controllerOperatingSequence\":\"Yes\",\"controllerOtherInformation\":\"asdfasddf\"}]}]}}",
            success: function(result)
            {
                alert("Sucess");
            }, 
            failure: function(result)
            {
                alert("Failure");
            }
        });
    }
    function (result) {     
    }
</script>

函数testRest(){
$.ajax({
类型:“POST”,
数据类型:“json”,
url:“http://ie22ltjpsd4bs/SSTest/SaveSurvey.svc/SSS",
contentType:“应用程序/json”,
数据:“{”站点信息“:{”站点名称“:”Malar“,”站点编号“:”123344555“,”站点联系人“:”test“,”站点地址“:”test“,”站点城市“:”test“,”站点邮政编码“:”test“,”站点电话“:”1234576788,,”站点合同号“:”asdfasdfasdf“,”站点霍尼韦尔牧场“:”asdfasdfasdf“,”sitedfarm“,”sitedfarm“,”sitedfarmeader:”asdf“,”sitedfarmeader“,”sitedfarmeader:”asdf“,”sitedfarmeader“,”asdf“,”sitedfarmeader“,”asdf“,”sitedfarmead“,”asdf“,”sitedfarmead“asdfasdf\“,”现场技术员\“:”asdfasdf\“,”设备\“:[{“设备ID\”:”分支工具库存\“,”设备站点联系电话\“:12345678,\”设备描述\“:”asdfasdf\“,”设备位置\“:”asdfasdf\”,”设备监控前端\“:”asdfasdf\“,”设备数量站\“:12,\”设备类型PC \“:”ASDFASDFASDFASDF\”,“设备版本\”\“,”EquipmentManufacturer\“:”A C电机“,”EquipmentManufacturerDateOrage\“:”1979-12-31T18:30:00.000Z\“,”EquipmentProductNameorVersion\“:”asdfasdf\”,”EquipmographicsoftwareIncl\“:”否“,”EquipmexistingSaveBackup\”:“是“,”EquipmbackupSaveFormat\”:”是“,”EquipmentAccess\“:”ASDFASDFASDFASDFDFDFDFDFDF\”,”设备密码“,”本地访问“,”远程访问“,”\“EquipmAccessInfo\”:“asdfasdf\”,“EquipmSystemArchitecture\”:“是”,“EquipmArchivedInAdept\”:“是”,“设备其他信息”:“asdfasdf\”,“ControllerInformation\”:[{“controllerName\”:“asdfasdf\”,“controllerManufacturer\”,“controllerManufacturer\”:“ASDFASDFASDF\”,“ControllersofWareProgram\”:“是”,“controllerName\”,“ControllerProduction\”:“ControllerVersion\”asdfasdf\“,”controllerTypeOfProgram\“:”解释的\“,”controllerExistingSaveBackup\“:”是“,”controllerBackUpSaveFormat\”:”是“,”controllerLocalAccess\“:”asdf\“,”controllerPassword\”:”asdf\“,”controllerRemoteAccess\“:”调制解调器\“,”controllerAccessInfo\”:“asdf\”,“controllerControlDrawings\:”是“,”操作人员:“,”是“,”控制器信息\“:\“asdfasddf \“}]}]}”,
成功:功能(结果)
{
警惕(“成功”);
}, 
失败:功能(结果)
{
警报(“故障”);
}
});
}
函数(结果){
}
按钮点击:

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" OnClientClick="testRest()" Text="Button" />


我附加了w3wp进程并尝试调试服务,json字符串总是为null。但是我使用fiddler截获了json字符串被发布的请求,而服务实现代码总是为null。

这是计划中的行为。您的服务不知道如何映射您传递的数据。 如果要将json内容作为字符串传递,则应将其包装如下:

data: JSON.stringify({ jsonString: "your_data" })