2012-04-01 22 views
0

を不正な要求エラーを得た:次のようには、DELETE REST Webサービスのために、私は定義された私のインターフェイスで

[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 
} 

私はテストのためのFirefox用のRESTClientを使用しています。メソッドのドロップダウンリストからDELETEを選択し、URL:localhost:57518/Service.svc/deleteAsset/127を入力し、「送信」ボタンを押しました。それから私はこのエラーを持っています。

400不正な要求

サーバがリクエストの処理中にエラーが発生しました:私は、次のエラーメッセージが表示されました。

答えて

0

どこが起こっていますか?それは "deleteAsset" methidに達していますか?

さらに、削除する前にアセットが存在するかどうか調べているのはなぜですか?それは不必要なオーバーヘッドのようです。削除コマンドを実行するだけで、存在すれば削除されます。そうしないと何も起こりません。何かが実際に削除されたかどうかを知る必要がある場合は、deleteコマンドから影響を受けた行を取得します。

1

問題はとなります。投稿したコードにはありません。

通常、間違ったhttpリクエストを送信した場合にのみ、400エラーが発生します。だから、あなたがテストしているどのような方法であれ、Webサーバーはあなたのメソッドに当たってもそれを拒否しています。

+0

私はテストのためにFirefox用RESTClientを使用します。私はメソッドドロップダウンリストからDELETEを選択し、http:// localhost:57518/Service.svc/deleteAsset/127というURLを入力し、 "Send"ボタンを押しました。それから私はこのエラーを持っています。何が間違っているのか分かりません。 –

+0

これは私が使ったツールではないので、正しく使用しているかどうかはわかりません。詳細を調べるには、RESTClientが送信している生のhttpメッセージを調べることが必要な場合があります。また、Webサーバー(IIS?)のログを見つけて、そこにエラーが記録されているかどうかを確認できます。 –

関連する問題