2016-12-01 19 views
1

コードの背後にC#WebMethodが表示され、内部サーバーエラーが500件発生することがあります。私は本当にそれがそれに当たらない理由を本当に理解していないので、誰かが私に何が問題であると言えるかは本当に素晴らしいだろう。ajaxを使用してWebMethodを呼び出すと500内部サーバーエラーが発生する

enter image description here

だからこれは私のAJAX呼び出しであっても、データとデータ型コメントアウトされていないと動作しません。

$('#chkBxAutoCost') 
    .click(function(e) { 
      $.ajax({ 
       type: "POST", 
       url: "BatchReportCriteriaSelection.aspx/GetAutoJsonBatches", 
       contentType: 'application/json; charset=utf-8', 
       dataType: 'json', 
       data: "{}", 
       error: function(XMLHttpRequest, textStatus, errorThrown) { 
        console.log("Request: " + 
         XMLHttpRequest.toString() + 
         "\n\nStatus: " + 
         textStatus + 
         "\n\nError: " + 
         errorThrown); 
       }, 
       success: function() { console.log("success") } 
      }); 
     } 
    ); 

そして、これは、ページの方法の背後に私のコードです:

[WebMethod] 
public string GetAutoJsonBatches() 
{ 
    return autoJsonBatches; 
} 

だから私は、このWebMethod属性にブレークポイントを添付して、それがヒットされていません。私はかなり詰まっているので、誰かが洞察力を持っていれば、私は大いに感謝しています。

+0

の可能性のある重複した[ASP.NET 500内部サーバーエラーJavaScriptからWebMethod属性を呼び出し中](http://stackoverflow.com/questions/30011998/asp-net-500-internal -server-error-while-calling-webmethod-from-javascript) –

+0

メソッドを静的にしてみてください:http://stackoverflow.com/questions/30011998/asp-net-500-internal-server-error-while- call-webmethod-from-javascript –

+0

ありがとうございました。静的にして固定します。私はここから回答を受け入れる方法がありません!あなたが私の下で答えを加えるなら、私はそれを受け入れるでしょう! :) – Seamy

答えて

0

botondがコメントで言ったように、私の問題はwebmethodsが静的である必要があるということでした!ありがとう、本当に私の頭を壊していた!

0

ASP.NET AJAXを使用してスクリプトからこのWebサービスを呼び出すには、Webサービスに[System.Web.Script.Services.ScriptService]属性を使用する必要があります。

[System.Web.Script.Services.ScriptService] 
public class WebService1 : System.Web.Services.WebService 
{ 

    [WebMethod] 
    public string GetAutoJsonBatches() 
    { 
     return autoJsonBatches; 
    } 
} 

あなたは例外メッセージが何であるかを私たちに提供していません。

1

まずあなたが編集RouteConfig.csを持っており、彼らは完全にステートレスであるため、彼らは静的だ

settings.AutoRedirectMode = RedirectMode.Off; 

次の編集あなたのGetAutoJsonBatches()

staticに使用し、彼らはあなたのページのインスタンスを作成することはありません要求には (つまり、ViewStateとフォームフィールドの値)は何も渡されません。

HTTPはデフォルトではステートレスです.DOMステートメント、セッションなどで、ASP.Netは バックグラウンドで多くの処理を行います。標準ページの の要求により、開発者にとってより使いやすくなりました。

Source

[WebMethod] 
public static string GetAutoJsonBatches() 
{ 
    return autoJsonBatches; 
} 
関連する問題