4

我创建了一个简单的函数

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

定义,

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

从使用 Javascript/Jquery 的浏览器中, http://localhost/service1.svc告诉我我已经创建了一个服务和所有其他信息。看起来不错。
我正在尝试使用 http://localhost/service1.svc/Start调用它

我收到了一个 400 错误请求。我希望我在这里没有做错什么。我应该能够从浏览器访问 WCF 服务吗?在我想发帖之前,我尝试了很多。但我无法让这个基本的东西工作让我感到沮丧。

编辑和更新 现在我正处于这个阶段。服务页面告诉我元数据服务已禁用,并要求我插入以下文本

   <serviceMetadata httpGetEnabled="true" />

我插入了文本 - 但它仍然显示相同的文本!!这现在变得太混乱了..

4

2 回答 2

1

尝试使用 GET 更改 POST 并重新启动请求

于 2011-09-20T22:32:27.740 回答
1

为我工作。我创建了 WCF 休息服务。

我使用的 URL 看起来像http://localhost:8080/Service1/Start

这是代码:

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");
        }
    }
}
于 2011-09-20T22:49:00.323 回答