【发布时间】:2015-09-05 05:18:11
【问题描述】:
我已经创建了 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";
}
}
我从浏览器调用的 URL 是
http://localhost:2121/WcfService/Service.svc/UpdateDeviceStatus?FaultStatus={1}&MacAddress={20:10:00:20:10:00}
注意:如果我使用 webGet 方法,那么它可以工作,但对于 POST 方法它不起作用,任何人都可以给我解决方案吗?
【问题讨论】:
-
浏览器无法发送
POST请求。
标签: asp.net wcf asp.net-mvc-4 wcf-data-services