让POST或PUT在WCF REST服务中工作

5 c# linq wcf

我有一个WCF服务,我可以从它获取,但我无法弄清楚如何PUT到它.我只是想在每次在客户端中使用记录时增加一个命中字段.这是我的一些代码.

接口:

[OperationContract]
[WebInvoke(Method = "PUT",
    ResponseFormat = WebMessageFormat.Json,
    BodyStyle = WebMessageBodyStyle.Wrapped,
    UriTemplate = "IncSMS")]
void IncSMS();
Run Code Online (Sandbox Code Playgroud)

方法:

public void IncSMS()
{
    var business =
        (from p in _db.Businesses
            where p.BusinessID == 1
            select p).FirstOrDefault();
    business.SMSHits += 1;
    _db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

我得到"方法不允许."在IE中,谁能看到我做错了什么?

干杯,

麦克风.

小智 7

好吧,我问了这个问题,花了三天时间才找到应该非常简单的答案.

所以问题最终是:如何Content-Length在我的请求中添加标题???

答:Content-Length输入浏览器时无法添加URI,"因为默认情况下它会执行GET"!!! 要添加Content-Length到标题,您必须使用调试工具,例如.提琴手或建立表格或其他类型的客户!

在提琴手中,您只需Content-Length在"请求构建器"的"请求标题"部分中键入:0,它就会神奇地起作用!如本教程底部所示:http://blog.donnfelker.com/2008/12/04/how-to-rest-services-in-wcf-3-5-part-2-the-post/

多谢你们,

麦克风.