当前位置:  开发笔记 > 前端 > 正文

C#4.0 WCF REST JSON - HTTP GET CODE 400错误请求

如何解决《C#4.0WCFRESTJSON-HTTPGETCODE400错误请求》经验,为你挑选了2个好方法。

尝试创建一个简单的服务,通过以下几个教程返回一个简单的JSON字符串.我被两个不同的机器卡在了一个HTTP Statuscode 400错误请求上.示例教程使用JSON pt.1和pt.2的RESTful WCF服务 - http://www.youtube.com/watch?v=5BbDxB_5CZ8

我也有谷歌并在这里搜索(StackOverflow)类似的问题没有成功.

问题是我在尝试进行健全性检查以浏览到WCF服务并执行该方法时收到400错误请求.通过编译服务并浏览此地址:http:// localhost:49510/Service1.svc/GetPerson 就像教程一样.我试过找3天的解决方案.任何帮助表示赞赏.

这就是我的工作.

首先,我创建一个简单的WCF服务应用程序的新项目.我删除了默认的Service1.svc并添加了一个新的WCF服务,它生成了一个新的Service1.svc和一个IService1.cs

这是接口的代码(IService1.cs)

namespace WcfService1
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [WebInvoke(Method="GET", BodyGetPerson")]
        Person GetPerson();
    }

    [DataContract(Name="Person")]
    public class Person
    {
        [DataMember(Name="name")]
        public string Name { get; set; }
    }
}

这是Service1.svc的代码

namespace WcfService1
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    public class Service1 : IService1
    {
        public Person GetPerson()
        {
            return new Person() { Name = "Tobbe" };
        }
    }
}

并且Web.config不受影响,看起来像这个web.config




  
    
  
  
    
      
        
          
          
          
          
        
      
    
    
  
 
    
  


Arun Rana.. 14

对于REST WCF您必须在web.config中进行绑定和端点设置

通过以下方式替换整个web.config,它将起作用




  
    
  
  
    
      
    
    
      
        
          
          
          
          

        
      
      
        
          
        
      
    
    
  
 
    
    
 

你还剩下两件事

使用webHttpBinding(将默认http端口映射更改为webHttpBinding)


    
        
    
    


指定webHttp End Point Behaviors


    -----
    
    
        
            
                
            
        
    
    ------
 


Romain Meres.. 5

您没有指定任何端点...默认情况下,在WCF 4上,将使用使用basicHttpBinding的端点.它在这里不起作用,因为它是一个基于SOAP的绑定.你想要使用的是webHttpBinding,这是基于REST的......

以下是如何使用WCF 4覆盖默认绑定:


  
    
  

您还必须通过在配置中添加此端点行为来启用webHttp:


    
        
            
        
    

http://msdn.microsoft.com/en-us/library/bb924425.aspx



1> Arun Rana..:

对于REST WCF您必须在web.config中进行绑定和端点设置

通过以下方式替换整个web.config,它将起作用




  
    
  
  
    
      
    
    
      
        
          
          
          
          

        
      
      
        
          
        
      
    
    
  
 
    
    
 

你还剩下两件事

使用webHttpBinding(将默认http端口映射更改为webHttpBinding)


    
        
    
    


指定webHttp End Point Behaviors


    -----
    
    
        
            
                
            
        
    
    ------
 



2> Romain Meres..:

您没有指定任何端点...默认情况下,在WCF 4上,将使用使用basicHttpBinding的端点.它在这里不起作用,因为它是一个基于SOAP的绑定.你想要使用的是webHttpBinding,这是基于REST的......

以下是如何使用WCF 4覆盖默认绑定:


  
    
  

您还必须通过在配置中添加此端点行为来启用webHttp:


    
        
            
        
    

http://msdn.microsoft.com/en-us/library/bb924425.aspx

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有