如何调试Web服务?

时间:2012-09-25 11:23:20

标签: c# asp.net debugging

我正在使用visual studio,我将asp.net应用程序作为一个项目,将web服务作为另一个项目。我在我的asp.net应用程序中使用Web服务。我的webservice代码存在某种问题。但是我无法从asp.net应用程序连续调试到web服务。我在应用程序和Web服务中都设置了断点但在Web服务中没有激活断点并且它显示了我的连接错误。如何在localhost上托管时这样做?

6 个答案:

答案 0 :(得分:14)

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

您可以通过右键单击Web服务项目,Debug - >来完成此操作。启动新实例

答案 1 :(得分:8)

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

这是一个link可以帮到你。

答案 2 :(得分:3)

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

答案 3 :(得分:2)

尝试调试服务本身并查看它是否遇到断点。只需将其中包含服务的项目设置为主项目,并将服务设置为主起始页面。

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

您能否检查一下您是否添加了服务引用您的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.');
                }
            });
        });

我认为这会对你有帮助