我创建了一个简单的函数
[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" />
我插入了文字 - 但它仍显示相同的文字!!现在这太混乱了..
答案 0 :(得分:1)
尝试使用GET更改POST并重新启动请求
答案 1 :(得分:1)
适合我。我创建了WCF Rest Service。
我使用的网址看起来像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");
}
}
}