2015-08-29 244 views
0

我正在從7天wcf工作。我創建了一個Wcf服務。 但工作正常,並通過添加服務參考在Visual Studio中得到響應。但我的問題是,無論何時它被整合到android/windows中,這些人都沒有得到迴應。他們得到400(壞請求)。請任何人幫助我如何得到適當的迴應。 (我想作爲JSON響應)這是我的下面的代碼。 預先感謝您。WCF服務:400個錯誤的請求?

接口

public interface ISampleService1 
    { 
     [OperationContract] 

     [WebGet(ResponseFormat = WebMessageFormat.Json, UriTemplate = "getdata",BodyStyle = WebMessageBodyStyle.Bare)] 
     string getdata(); 
} 

public string getdata() 
     { 
      try 
      { 


       SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con2"].ConnectionString); 
       SqlCommand comm = new SqlCommand("select CircleID, CircleName from Circle", con); 
       con.Open(); 
       comm.ExecuteNonQuery(); 

       SqlDataAdapter da = new SqlDataAdapter(comm); 
       // DataSet ds = new DataSet(); 
       DataTable dt = new DataTable(); 
       da.Fill(dt); 

       JavaScriptSerializer JSSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
       List<Dictionary<string, object>> DtRows = new List<Dictionary<string, object>>(); 
       Dictionary<string, object> newrow = null; 

       //Code to loop each row in the datatable and add it to the dictionary object 
       foreach (DataRow drow in dt.Rows) 
       { 
        newrow = new Dictionary<string, object>(); 
        foreach (DataColumn col in dt.Columns) 
        { 
         newrow.Add(col.ColumnName.Trim(), drow[col]); 
        } 
        DtRows.Add(newrow); 
       } 
       con.Close(); 


       return JSSerializer.Serialize(DtRows); 
      } 
      catch (Exception ex) 
      { 

       List<String> Parameters = new List<String>(); 
       Parameters.Add("getRechargeCircleList"); 

      // SendErrorMail(ex.ToString(), "getRechargeCircleList", Parameters); 
       // Context.Response.ContentType = "application/json; charset=utf-8"; 
       // Context.Response.Write(@" {""Status"":""false"",""Message"" : ""Oops! Something went Wrong""}"); 
       // return; 
      } 
      return "false"; 
     } 

web.config文件:

<?xml version="1.0"?> 
<configuration> 
    <appSettings/> 




    </connectionStrings> 


    <system.web> 

    <httpRuntime maxRequestLength="32768"/> 
    <compilation debug="true" targetFramework="4.0"/> 
    <customErrors mode="Off"/> 
    <!-- 
     The <authentication> section enables configuration 
     of the security authentication mode used by 
     ASP.NET to identify an incoming user. 
    --> 
    <authentication mode="Windows"/> 
    <!-- 
     The <customErrors> section enables configuration 
     of what to do if/when an unhandled error occurs 
     during the execution of a request. Specifically, 
     it enables developers to configure html error pages 
     to be displayed in place of a error stack trace. 

     <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> 
     <error statusCode="403" redirect="NoAccess.htm" /> 
     <error statusCode="404" redirect="FileNotFound.htm" /> 
     </customErrors> 
    --> 
    <pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID"/> 
    </system.web> 
    <!-- 
     The system.webServer section is required for running ASP.NET AJAX under Internet 
     Information Services 7.0. It is not necessary for previous version of IIS. 
    --> 
    <system.webServer> 
    <!-- 
     To browse web app root directory during debugging, set the value below to true. 
     Set to false before deployment to avoid disclosing web app folder information. 
     --> 
    <directoryBrowse enabled="true"/> 
    </system.webServer> 
    <system.serviceModel> 

    <bindings> 
    <basicHttpBinding> 
     <binding name="basicHttp" allowCookies="true" 
       maxReceivedMessageSize="4194304" 
       maxBufferSize="20000000" 
       maxBufferPoolSize="20000000"> 
      <readerQuotas maxDepth="32" 
       maxArrayLength="200000000" 
       maxStringContentLength="200000000"/> 
     </binding> 
    </basicHttpBinding> 
</bindings> 
    <services> 
     <service behaviorConfiguration="SampleWcfproject.Service1Behavior" name="SampleWcfproject.Service1"> 
     <endpoint address="" binding="basicHttpBinding" contract="SampleWcfproject.IService1"> 
      <identity> 
      <dns value="localhost"/> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
     </service> 
     <service behaviorConfiguration="SampleWcfproject.SampleService1Behavior" name="SampleWcfproject.SampleService1"> 
     <endpoint address="" binding="basicHttpBinding" contract="SampleWcfproject.ISampleService1"> 
      <identity> 
      <dns value="localhost"/> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
     </service> 
    </services> 
    <behaviors> 
     <endpointBehaviors> 
      <behavior name="web"> 
       <dataContractSerializer maxItemsInObjectGraph="2147483647"/> 
      </behavior> 
     </endpointBehaviors> 
     <serviceBehaviors> 
     <behavior name="SampleWcfproject.Service1Behavior"> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     <behavior name="SampleWcfproject.SampleService1Behavior"> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

    </system.serviceModel> 
</configuration> 

我被消耗Web引用項目獲得Visual Studio中的以下respomse。但在android中出現400錯誤。

[{「」CircleID「」:1,「」CircleName「」:「」Andhra Pradesh「」},{「」CircleID「」:4,「」CircleName「」「」Assam「」}, { 「」 CircleID 「」:5 「」 CIRCLENAME 「」: 「」 比哈爾邦 「」},{ 「」 CircleID 「」:6 「」 CIRCLENAME 「」: 「」 奈 「」},{ 「」 CircleID 「」 :7 「」 CIRCLENAME 「」: 「」 德里 「」},{ 「」 CircleID 「」:8 「」 CIRCLENAME 「」: 「」 古吉拉特 「」},{ 「」 CircleID 「」:9 「」 CIRCLENAME 「」:「」Himachal Pradesh「」},{「」CircleID「」:10,「」CircleName「」:「」Haryana「」},{「」CircleID「」:11,「」CircleName「」:「」 Jammu \ Kashmir「」},{「」CircleID「」:12,「」CircleName「」:「」Kerala「」},{「」CircleID「」:13,「」CircleName「」:「」Karnataka「」 },{ 「」 CircleID 「」:14 「」 CIRCLENAME 「」: 「」 加爾各答 「」},{ 「」 CircleID 「」:15 「」 CIRCLENAME 「」: 「」 邦 「」},{ 「」 CircleID 「」:16,「」CircleName「」「」Madhya Pradesh「」},{「」CircleID「」:17,「」CircleName「」:「」Mumbai「」},{「」CircleID「」: 「」CircleName「」:「」North East「」},{「」CircleID「」:19,「」CircleName「」:「」Orissa「」},{「CircleID」「:20,」「CircleName」「 : 「」 旁遮普 「」},{ 「」 CircleID 「」:21 「」 CIRCLENAME 「」: 「」 Rajas比 「」},{ 「」 CircleID 「」:22 「」 CIRCLENAME 「}]」);

這是我的網址 http://xyzmnmkljj.in/SampleService1.svc/getdata

但它提供了400錯誤的請求。

在web.comfig文件的任何修改,請幫我

+0

請antone幫我 –

回答

0

能否請你檢查你的IP是那些機器可以訪問,如果是,那麼你需要給權限給該用戶訪問服務。在這種情況下,您需要將IIS設置更改爲提供程序中的NTLM。

blogs.msdn.com

相關問題