DELETE REST Web服务收到错误的请求错误

时间:2012-04-01 18:35:35

标签: c# sql-server wcf http rest

在我的界面中我定义了:

[OperationContract]
[WebInvoke(Method = "DELETE",
    UriTemplate = "deleteAsset/{asset_id}")]
void deleteAsset(string asset_id);

我的实施如下:

public void deleteAsset(string asset_id)
{
    using (DataClassesDataContext thisContext = new 
        DataClassesDataContext(ConfigurationManager.ConnectionStrings
        ["mgatewayConnectionString"].ConnectionString))
    {
            var result =
                thisContext.spGetAssetById(Convert.ToInt32(asset_id)).FirstOrDefault();
            if (result != null)
            {
                thisContext.spDeleteAsset(Convert.ToInt32(asset_id));
                thisContext.spDeleteModuleAssetLink(Convert.ToInt32(asset_id));
            }
    }//using
}

我使用RESTClient for Firefox进行测试。我从Method下拉列表中选择了DELETE并输入了url:localhost:57518 / Service.svc / deleteAsset / 127并点击“发送”按钮。然后我收到了这个错误。我收到以下错误消息:

400错误请求

服务器在处理请求时遇到错误。

2 个答案:

答案 0 :(得分:1)

问题是可能不在您发布的代码中。

通常只有在发送格式错误的http请求时才会发生400错误。因此,无论您采用何种方式对其进行测试,Web服务器都会拒绝它,因为它会影响您的方法。

答案 1 :(得分:0)

它在哪里发生?它会到达“deleteAsset”methid吗?

另外,为什么要在删除之前检查资产是否存在?这似乎是一种不必要的开销。你不能只运行删除命令,如果它存在,它将被删除,否则什么都不会发生。如果您需要知道是否实际删除了某些内容,请从delete命令中获取受影响的行。