我已经创建了WCF POST方法。当我通过在查询字符串中传递参数从浏览器调用它时,它给了我类似如下的错误:WCF服务如果从诸如“不允许的方法”之类的浏览器调用,Post请求会出错。
方法不允许。请参阅该服务帮助页面构造有效的请求到服务
我的代码是在接口
[ServiceContract]
public interface IService
{
//[OperationContract]
//[WebGet(UriTemplate = "/UpdateDeviceStatus?FaultStatus={FaultStatus}&MacAddress={MacAddress}", RequestFormat = WebMessageFormat.Xml)]
//string UpdateDeviceStatus(string FaultStatus, string MacAddress);
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,
UriTemplate = "/UpdateDeviceStatus?FaultStatus={FaultStatus}&MacAddress={MacAddress}")]
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
string UpdateDeviceStatus(string FaultStatus, string MacAddress);
}
而且在Service.svc是我从浏览器中调用
public string UpdateDeviceStatus(string FaultStatus, string MacAddress)
{
try
{
// here my operation
}
catch (Exception ex)
{
return "Failed to update";
}
}
网址是
http://localhost:2121/WcfService/Service.svc/UpdateDeviceStatus?FaultStatus={1}&MacAddress={20:10:00:20:10:00}
注意:如果我使用webGet会见那么它的工作原理,但对于POST方法它不工作可以任何人请给我这个解决方案?
浏览器无法发送'POST'请求。 –