0

私は最初の WebService に苦労しているので、すべてを基本に落とし込むことにしました。まだ動作していません。

まったく新しい ASP.NET Web サイト プロジェクトを作成しました。

WebService という名前のフォルダーを追加しました。WebService フォルダーに、ASP.NET テンプレートを使用して新しい WebService を追加しました。テンプレートを変更して、[System.Web.Script.Services.ScriptService] のコメントを外しました。

Default.aspx ページの「ASP.NET へようこそ」の後に、次のようなパネルを追加しました。

<asp:Panel ID="Panel1" runat="server" Height="200px" Width="200px" BackColor="Blue" onclick="HelloWorld();">
</asp:Panel>

また、次のスクリプトを HeaderContent 領域に追加しました。

<script type="text/javascript" language="Javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

<script type="text/javascript">

    function OnSuccessCall(response) {
        alert("Success! : " + response);
    }
    function OnErrorCall(response) {
        alert(response.status + " " + response.statusText);
    }
    function HelloWorld() {
        var pageUrl = '<%=ResolveUrl("~/WebService/WebService.asmx")%>'

        $.ajax({
            url: pageUrl + "/HelloWorld",
            success: OnSuccessCall,
            error: OnErrorCall
        });
    }

 </script>

このコードを実行するとエラー 500 が表示されます。

// - - - - - - - - - - - - - - - - アップデート - - - - - - - - ------------------------------

ああ!新しい手がかり!WebMethod を、WebService クラスの一部としてではなく、[WebMethod] 属性を持つメソッドとして Default.aspx のコード ビハインドに移動すると、機能します。(少なくとも、私は OnSuccess 関数に到達します)。ただし、次に追加すると

contentType: "application/json; charset=utf-8",
dataType: "json",

$.ajax() 呼び出しに戻ると、エラー 500 が返されます (別の理由による可能性もあります)。JSON などで不足しているインストール ピースはありますか?

// - - - - - - - - - - - - - - - - アップデート - - - - - - - - ------------------------------ 実際の WebService は次のとおりです。前に述べたように、これはまさに New Item を作成して Web Service を選択したときに得られるものです。

誰かがこれがうまくいくと私に言うことができれば、私は環境問題に集中することができます.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
 [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {

    public WebService () {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string HelloWorld( ) {
        return "Hello World";
    }

}
4

1 に答える 1

1

コードをコンパイルしようとしなかったか、実際のコードをここに入れなかった

[WebMethod]
public string HelloWorld(string name) { //<--- you forget method param name to specify
    return "Hello World";
}

したがって、パラメーターを削除するか ( ie public string HelloWorld())、コードで示したように名前を追加します。

また、パラメーターがないため、サービス メソッドの URL をブラウザーに入力するだけで、何が起こるかを確認できます。つまりhttp://localhost/yourapp/WebService/WebService.asmx/HelloWorld、に移動するか、実際の URL が何であれ

于 2013-04-11T12:03:23.360 に答える