私はビジュアルスタジオを使用しており、asp.netアプリケーションを1つのプロジェクトとして、Webサービスを別のプロジェクトとして使用しています。asp.netアプリケーションでWebサービスを使用しています。私のWebサービスコードには何らかの問題があります.しかし、私はasp.netアプリケーションからWebサービスに継続的にデバッグすることができません.アプリケーションとWebサービスの両方にブレークポイントを配置しましたが、Webサービスでアクティブ化されていないブレークポイントと接続を示していますerror.localhost でホストしているときにこれを行うにはどうすればよいですか?
6 に答える
Web アプリケーションをスタートアップ プロジェクトとして実行している場合は、別のデバッグ インスタンスで Web サービスを実行してみてください。
これを行うには、Web サービス プロジェクトを右クリックし、[デバッグ] -> [新しいインスタンスを開始] を選択します。
デバッガーを w3wp (IIS プロセス) にアタッチする必要があります。
ここにあなたを助けることができるリンクがあります。
ローカル システムでデバッグする場合は、複数のスタートアップ プロジェクトを設定できます。ソリューションのプロパティで複数の起動を設定できます。この助けを願っています
サービス自体をデバッグして、ブレークポイントに到達するかどうかを確認してください。サービスを含むプロジェクトをメイン プロジェクトに設定し、サービスをメインの開始ページに設定するだけです。
ブレークポイントに到達しない場合は、すべてのシンボルが読み込まれていない可能性があります。これは、プロジェクトがデバッグではなくリリース構成に設定されている場合に発生します。
サービス参照を 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.');
}
});
});
私はこれがあなたを助けると思います
Web サービスはリモート コンピューターで実行されていますか? その場合、Web サービスのリモート デバッグをセットアップする必要があります。