Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# wcf服务返回错误404 POST请求_C#_Wcf_Post - Fatal编程技术网

C# wcf服务返回错误404 POST请求

C# wcf服务返回错误404 POST请求,c#,wcf,post,C#,Wcf,Post,我有客户端(Windows Phone)和REST服务。问题是:我正在发送一个POST请求,其中一个变量JSON字符串服务处理它,答案是: "{StatusCode: 404, ReasonPhrase: '', Version: 0.0, Content: System.Net.Http.StreamContent, Headers:{ Content-Length: 0}}" 我花了很长时间想弄明白。没有所有人的帮助。因此,所有阶段: 1) 我发布的变量是:

我有客户端(Windows Phone)和REST服务。问题是:我正在发送一个POST请求,其中一个变量JSON字符串服务处理它,答案是:

    "{StatusCode: 404, ReasonPhrase: '', Version: 0.0, Content: System.Net.Http.StreamContent, Headers:{  Content-Length: 0}}"
我花了很长时间想弄明白。没有所有人的帮助。因此,所有阶段: 1) 我发布的变量是:

          "{"Category_id":1002,"Country_id":null,"City_id":null,"Areas_id":null,"Gender_user":null,"DateAnnouncing":null,"MinDateBirthday":null,"MaxDateBirthday":null,"Popular":null,"DateSort":null}"
2) 调用方法

    public static async Task<string> ServiceCalledWithJson( string MethodName, AnnFilter customObject)
    {
        string ServiceURI = GetServiceHost() + MethodName;                                 
        var httpClient = new HttpClient();
        var result = JsonConvert.SerializeObject(new { filter = customObject });
        var request = new StringContent(result, Encoding.UTF8, "application/json");
        var response = await httpClient.PostAsync(ServiceURI, request);
        string content = await response.Content.ReadAsStringAsync();
        return content;
    }
6) Web配置:

    <endpointBehaviors>
    <behavior name="restBehavior">
      <webHttp helpEnabled="true" defaultOutgoingResponseFormat="Json"/>
    </behavior>
  </endpointBehaviors>
    <service behaviorConfiguration="MyBehavior" name="Searching.BE.Service.WCFRESTService">
        <endpoint address="" behaviorConfiguration="restBehavior" binding="webHttpBinding"
            contract="Searching.BE.Service.IWCFRESTService"/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      <endpoint address="net" binding="netHttpBinding" contract="Searching.BE.Service.IWCFRESTService">
        <identity>
          <dns value="localhost"/>
        </identity>
      </endpoint>
    <webHttpBinding>
      <binding name="webhttp"
        bypassProxyOnLocal="true"
        useDefaultWebProxy="false"
        hostNameComparisonMode="WeakWildcard"
        sendTimeout="10:15:00"
        openTimeout="10:15:00"
        receiveTimeout="10:15:00"
        maxReceivedMessageSize="2147483647"
        maxBufferSize="2147483647"
        maxBufferPoolSize="2147483647"
        transferMode="StreamedRequest">
        <readerQuotas maxArrayLength="2147483647"
                      maxStringContentLength="2147483647" />
        <security mode="None">
          <transport clientCredentialType="None">
          </transport>
        </security>
      </binding>
    </webHttpBinding>


这有帮助吗-?您是否已使用Fiddler或Chrome调试工具检查以验证所调用的实际URL?我想知道GetServiceHost是否返回所需的结束斜杠,然后将MethodName附加到它…@Nikki9696我制作了TestFunction,它发送关于WCF服务的JSON请求并返回。我可以说问题不在URL中
    public List<Announcing> GetAnnouncingFilter(AnnFilter filter)
    {
        var json = JsonConvert.SerializeObject(filter);
        Logger.WriteToFile_Json(json);
        List < Announcing > listAnnonc = new List<Announcing>();
        Announcing annonc = new Announcing();
        DataTable table = new DataTable();
        table = AnnouncingFilter.GetAnnouncingFilter(filter);
        foreach(DataRow row in table.Rows)
        {
            try
            {
                annonc.Announcing_id = int.Parse(row["Announcing_id"].ToString());
                annonc.Name_Announcing = row["Name_Announcing"].ToString();
                annonc.Name_City = row["City_Name"].ToString();
                listAnnonc.Add(new Announcing() {Announcing_id=annonc.Announcing_id,Name_Announcing=annonc.Name_Announcing,Name_City =annonc.Name_City });
            }
            catch (Exception ex)
            {
                Logger.CreateLog(ex);
                throw ex;
            }
        }
        var slem = "";
        slem = JsonConvert.SerializeObject(listAnnonc);
        Logger.WriteToFile_Json(slem);
        return listAnnonc;
    {"Category_id":1002,"Country_id":null,"City_id":null,"Areas_id":null,"Gender_user":null,"DateAnnouncing":null,"MinDateBirthday":null,"MaxDateBirthday":null,"Popular":null,"DateSort":null

   [{"Name_City":"Киев","Announcing_id":1,"Name_Announcing":"Прогулки","Phone_Announcing":null,"Date_Announcing":"0001-01-01T00:00:00","Info_Announcing":null,"Categories_id":0,"User_id":0,"City_id":0,"Areas_id":null,"AreasOfCity":null,"Categories":null,"Cities":null,"UserList":null,"Favorite_Announcing":[],"Selected_Announcing":[]}]
    <endpointBehaviors>
    <behavior name="restBehavior">
      <webHttp helpEnabled="true" defaultOutgoingResponseFormat="Json"/>
    </behavior>
  </endpointBehaviors>
    <service behaviorConfiguration="MyBehavior" name="Searching.BE.Service.WCFRESTService">
        <endpoint address="" behaviorConfiguration="restBehavior" binding="webHttpBinding"
            contract="Searching.BE.Service.IWCFRESTService"/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      <endpoint address="net" binding="netHttpBinding" contract="Searching.BE.Service.IWCFRESTService">
        <identity>
          <dns value="localhost"/>
        </identity>
      </endpoint>
    <webHttpBinding>
      <binding name="webhttp"
        bypassProxyOnLocal="true"
        useDefaultWebProxy="false"
        hostNameComparisonMode="WeakWildcard"
        sendTimeout="10:15:00"
        openTimeout="10:15:00"
        receiveTimeout="10:15:00"
        maxReceivedMessageSize="2147483647"
        maxBufferSize="2147483647"
        maxBufferPoolSize="2147483647"
        transferMode="StreamedRequest">
        <readerQuotas maxArrayLength="2147483647"
                      maxStringContentLength="2147483647" />
        <security mode="None">
          <transport clientCredentialType="None">
          </transport>
        </security>
      </binding>
    </webHttpBinding>