WCF 400 Bad Request

风流意气都作罢 提交于 2019-12-12 12:30:38

问题


I created a simple function

       [OperationContract]
       [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
       string Start();

Definition,

       public String Start()
       {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            return serializer.Serialize("Check");
       }

From browser using Javascript/Jquery, http://localhost/service1.svc tells me I have created a service and all other info.. Looks fine.
I'm trying to call this using http://localhost/service1.svc/Start

I get a 400 bad request for this call. I hope I'm not doing something totally wrong here. I should be able to access WCF service from browser right? I tried looking a lot before I thought of posting. But I'm unable to get this basic thing working is frustrating me.

EDIT & UPDATE Now I'm at this stage. The service page is telling me that the metadata service is disabled and is asking me to insert the following text

   <serviceMetadata httpGetEnabled="true" />

I inserted the text - but still it shows the same text!! This is getting too confusing now..


回答1:


Try to change POST with GET and restart the request




回答2:


Works for me. I created WCF Rest Service.

I use URL which looks like http://localhost:8080/Service1/Start

Here is the code:

using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Web.Script.Serialization;

namespace WcfRestService1
{
    // Start the service and browse to http://<machine_name>:<port>/Service1/help to view the service's generated help page
    // NOTE: By default, a new instance of the service is created for each call; change the InstanceContextMode to Single if you want
    // a single instance of the service to process all calls.   
    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
    // NOTE: If the service is renamed, remember to update the global.asax.cs file
    public class Service1
    {
        [OperationContract]
        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)]
        public string Start()
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            return serializer.Serialize("Check");
        }
    }
}


来源:https://stackoverflow.com/questions/7492522/wcf-400-bad-request

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!