web-dev-qa-db-ja.com

Webサービスをデバッグする方法は?

Visual Studioを使用しており、asp.netアプリケーションを1つのプロジェクトとして使用し、Webサービスを別のプロジェクトとして使用しています。asp.netアプリケーションでWebサービスを使用しています。私のWebサービスコードには何らかの問題がありますが、asp.netアプリケーションからWebサービスに継続的にデバッグすることはできません。アプリケーションとWebサービスの両方にブレークポイントを入れましたが、Webサービスでブレークポイントがアクティブにならず、接続が表示されますエラー:ローカルホストでホストしているときにこれを行うにはどうすればよいですか?

13
urz shah

スタートアッププロジェクトとしてWebアプリケーションを実行している場合は、別のデバッグインスタンスでWebサービスを実行してみてください。

Webサービスプロジェクトを右クリックして、[デバッグ]-> [新しいインスタンスを開始]を選択します。

17

デバッガーをw3wp(IISプロセス)に接続する必要があります。

ここに link があります。

9
Cybermaxs

ローカルシステムでデバッグする場合は、複数の起動プロジェクトを設定できます。ソリューションプロパティによって複数のスタートアップを設定できます。この助けを願っています

3
Krunal Solanki

サービス自体をデバッグして、ブレークポイントに到達するかどうかを確認してください。サービスを含むプロジェクトをメインプロジェクトに設定し、サービスをメインスタートページに設定するだけです。

ブレークポイントにヒットしない場合は、おそらくすべてのシンボルをロードしていません。これは、プロジェクトがデバッグではなく設定をリリースするように設定されている場合に起こります。

2
Rob

Webサービスがリモートコンピューターで実行されている場合は、Webサービスのリモートデバッグをセットアップする必要があります。

0
NiladriBose

Webサービスを参照するサービスを追加するか、Webサービス機能にアクセスできない他のサービスを追加しないことを確認してください。私は私のプロジェクトで以下のようなWebサービスを使用しています

これは私のWebサービスコードです

[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 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 JsonData : System.Web.Services.WebService
    {

        [WebMethod(Description = "")]
        [ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
        public StateData[] GetStateByCountryID(int ID)
        {
            StateData objStateData = new StateData();
            LMGDAL.db_LMGEntities dbData = new db_LMGEntities();                
            var data = (from con in dbData.tblStates
                        where con.State_CountryID == ID
                        select new StateData
                        {
                            StateID = con.StateID,
                            StateName = con.StateName
                        }).ToList();
            return data.ToArray();
        }

次に、asp.net Webフォームにサービス参照を追加します

私のフォームのこのコード

<script type="text/javascript">
    $(function () {

        $("#ddlCountry").change(function () {
            var countryID = $("#ddlCountry").val();
            $.ajax({
                type: "POST",
                url: "JsonData.asmx/GetStateByCountryID",
                contentType: "application/json; charset=utf-8",
                dataType: 'json',
                data: '{ID:"' + countryID + '"}',
                success: function (msg) {
                    var data = msg.d;
                    var stateData = "";
                    $.each(data, function (index, itemdata) {
                        stateData += "<option  value='" + itemdata.StateID + "' > " + itemdata.StateName + " </option>";
                    });
                    $("#ddlState").empty();
                    $("#ddlState").append("<option value='0'>-Select State-</option>");

                    $("#ddlState").append(stateData);
                },
                error: function () {
                    alert('Faild To Retrieve States.');
                }
            });
        });

これはあなたを助けると思います

0
Rajpurohit