2016-11-22 33 views
0

私は以下のようにC#asmx Webサービスコードを持っています。Response.Writeを使用してJqueryからasmx Webサービスを呼び出すJSON出力

[WebMethod] 
    [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 
    public void getPolicyDetails(string CustId, string PolicyType) 
    { 
     JavaScriptSerializer js = new JavaScriptSerializer(); 
     Context.Response.Clear(); 
     Context.Response.ContentType = "application/json"; 
     clsPolicy data = new clsPolicy(); 
     try 
     { 
      string policyTxt = ""; 
      //get PolicyTxt from Database 
      data.Message = policyTxt.ToString(); 
     } 
     catch (Exception ex) 
     { 
     } 
     Context.Response.Write(js.Serialize(data)); 
    } 

ここでは、このWebサービスをasp.netで使用しようとしています。このWebサービスは既に私のandroidプロジェクトで正常に使用されています。

JavaScriptを使用して呼び出すと、500 - Internal Serverエラーが発生します。以下は私のJavascriptコードです。

function getPolicy(policyType) { 
 
      $.ajax({ 
 
       type: "POST", 
 
       url: "http://myurl/productsearch.asmx/getPolicyDetails", 
 
       data: '{CustId: 106206,PolicyType: "' + policyType + '" }', 
 
       contentType: "application/json; charset=utf-8", 
 
       dataType: "json", 
 
       success: OnSuccess, 
 
       failure: function (response) { 
 
        alert(response.d); 
 
       } 
 
      }); 
 
     } 
 
     function OnSuccess(response) { 
 
      alert(response.d); 
 
     }

何が問題だろうか?

答えて

0
public void getPolicyDetails(string CustId, string PolicyType) 

あなたは、文字列としてお客様IDを定義しますが、あなたのJSONで

data: '{CustId: 106206,PolicyType: "' + policyType + '" }' 

また、あなたのデータを作成するためにJSON.stringifyの使用を開始する整数です。

var policyType = 'something'; 
var custID = '106206'; 
data: JSON.stringify({CustId:custID, PolicyType: policyType }) 
+0

文字列で試してみましょう。 –

+0

コードを変更しました:var custid = "106206";データ: '{CustId: "' + custid + '"、PolicyType: "' + policyType + '"}'。 –

+0

それでも500の内部サーバーエラーが発生しています。 –

1

エラー500内部サーバーエラーは、Webサービスのエラーに関連しています。

異なる方法catchブロックでのデバッグ/エラーを記録

  1. に処理コードファイルを使用してテキストファイルにそのエラーを記録します。

  2. サービスが展開され、そのサーバーにVisual Studioがインストールされているサーバーにアクセスできる場合は、w3wpプロセスにWebサービスを接続してデバッグします。

  3. あなたはエラーWindowsイベントビューア

    コントロールパネルを確認することができます - > [管理ツール] - >左サイドパネルには、イベントビューア

    のWindowsログ]を展開し、アプリケーションメニューをクリックし、エラーで詳細を見つけますあなたのアプリケーションに関連するログ

関連する問題