14

我正在使用 Visual Studio,我将 asp.net 应用程序作为一个项目,将 Web 服务作为另一个项目。我在我的 asp.net 应用程序中使用 Web 服务。我的 Web 服务代码存在某种问题。但我无法从 asp.net 应用程序到 Web 服务进行连续调试。我在应用程序和 Web 服务中都设置了断点,但断点未在 Web 服务中激活,它显示连接错误。在 localhost 上托管时如何执行此操作?

4

6 回答 6

22

如果您将 Web 应用程序作为启动项目运行,请尝试在另一个调试实例中运行 Web 服务。

您可以通过右键单击 Web 服务项目,调试 -> 启动新实例来完成

于 2012-09-25T11:28:49.477 回答
10

您应该将调试器附加到 w3wp(IIS 进程)。

这是一个可以帮助您的链接。

于 2012-09-25T11:25:22.503 回答
3

如果要在本地系统调试,可以设置多个启动项目。您可以通过解决方案属性设置多个启动。希望这有帮助

于 2012-09-25T11:29:24.600 回答
2

尝试调试服务本身并查看它是否命中断点。只需将其中包含服务的项目设置为主项目,并将服务设置为主启动页面即可。

如果它没有达到断点,它可能没有加载所有符号。如果项目设置为,比如说,发布配置而不是调试,就会发生这种情况。

于 2012-09-25T11:34:05.883 回答
0

Web 服务是否在远程计算机上运行,​​如果是,您需要为 Web 服务设置远程调试。

于 2012-09-25T11:24:59.940 回答
0

请检查您是否添加了服务引用您的网络服务或其他您无法访问您的网络服务功能。我在我的项目中使用网络服务,如下所示

这是我的网络服务代码

[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 网络表单

我的表格中的这段代码

<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.');
                }
            });
        });

我想这会对你有所帮助

于 2012-09-25T11:34:56.397 回答