2013-06-24 5 views
3

В моем проекте У меня есть WebService для создания списка, когда я запускаю WebService, я получаю NullReference Exception в c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\DefaultWsdlHelpGenerator.aspx.Ссылка на объект не установлена ​​в экземпляр объекта в Webservice

Может ли кто-нибудь указать мне, в чем проблема в моем коде?

Кодекс Я попытался это:

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 
    using System.Web.Services; 
    using System.Data.SqlClient; 
    using System.Data; 
    using SubSonic; 

    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 
    [System.Web.Script.Services.ScriptService] 
public class AutoComplete : System.Web.Services.WebService 
{ 
public AutoComplete() 
{ 
    //InitializeComponent(); 
} 

public string[] Getlist(string keywordstartswith) 
    { 
    IList<string> output = new List<string>(); 
    Dictionary<string, string> mydict = new Dictionary<string, string>(); 
    string QueryString = System.Configuration.ConfigurationManager.ConnectionStrings ["IUMSNXG"].ToString(); 
    IDataReader obj_result = SearchApp.DBCon.LRS_SP_CBFM_Sel(keywordstartswith).GetReader(); 
    DataTable dt = new DataTable(); 
    dt.Load(obj_result); 
    if(dt.Rows.Count > 0) 
    { 
     while (obj_result.Read()) 
     { 
      output.Add(string.Format("{0}~{1}", obj_result["AnimalCode"].ToString().TrimEnd(), obj_result["pk_animalid"].ToString().TrimEnd())); 
     } 
    } 
    return output.ToArray(); 
    } 
} 

Источник ошибки я получаю:

Line 1333: 
Line 1334: OperationBinding FindHttpBinding(string verb) { 
Line 1335:  foreach (ServiceDescription description in serviceDescriptions) // Getting Error Here 
        { 
Line 1336:   foreach (Binding binding in description.Bindings) { 
Line 1337:    HttpBinding httpBinding = (HttpBinding)binding.Extensions.Find(typeof(HttpBinding)); 

Стек Трассировка

[NullReferenceException: Object reference not set to an instance of an object.] 
    ASP.defaultwsdlhelpgenerator_aspx.FindHttpBinding(String verb) in c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\DefaultWsdlHelpGenerator.aspx:1335 
    ASP.defaultwsdlhelpgenerator_aspx.get_HttpPostOperationBinding() in c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\DefaultWsdlHelpGenerator.aspx:526 
    ASP.defaultwsdlhelpgenerator_aspx.get_ShowingHttpPost() in c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\DefaultWsdlHelpGenerator.aspx:541 
    ASP.defaultwsdlhelpgenerator_aspx.__Render__control20(HtmlTextWriter __w, Control parameterContainer) in c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 \Config\DefaultWsdlHelpGenerator.aspx:1574 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +109 
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 
    System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +31 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208 
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 
    System.Web.UI.Page.Render(HtmlTextWriter writer) +29 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3060 
+0

Где в вашем коде есть ошибка? –

+0

@ Kostas Ошибка не появляется в файле кода, который я создал, ** Исключение Nullreference ** находится в 'DefaultWsdlHelpGenerator.aspx' – Rajesh

+0

@Rajesh Но какая строка? –

ответ

2

[WebMethod] атрибут отсутствует в вашем WebMethod. Постарайтесь написать свой веб-метод, как,

 [WebMethod] 
     public string[] Getlist(string keywordstartswith) 
     { 
      IList<string> output = new List<string>(); 
      Dictionary<string, string> mydict = new Dictionary<string, string>(); 
      string QueryString = System.Configuration.ConfigurationManager.ConnectionStrings["IUMSNXG"].ToString(); 
      IDataReader obj_result = SearchApp.DBCon.LRS_SP_CBFM_Sel(keywordstartswith).GetReader(); 
      DataTable dt = new DataTable(); 
      dt.Load(obj_result); 
      if (dt.Rows.Count > 0) 
      { 
       while (obj_result.Read()) 
       { 
        output.Add(string.Format("{0}~{1}", obj_result["AnimalCode"].ToString().TrimEnd(), obj_result["pk_animalid"].ToString().TrimEnd())); 
       } 
      } 
      return output.ToArray(); 
     } 

Прикрепление [WebMethod] атрибут общедоступный метод указывает на то, что вы хотите метод разоблачен как часть XML веб-службы

+0

У меня было Отредактировано с помощью '[WebMethod]' в верхней части моего веб-метода, но во время выполнения того же Исключения. – Rajesh

+0

Кстати, не могли бы вы подтвердить меня: просто создайте новый веб-сервис asp.net и ничего не сделайте, просто попробуйте запустить его и успешно ли он работает? @ Rajesh – Rezoan

+1

Я создал новую веб-службу без кода в ней и Пытался запустить его, но Same Exception был брошен. – Rajesh

3

ASP.Net обработчик, который генерирует выходные данные для получения запросов к ресурсу asmx, не работает, если AutoEventWireup отключен для вашего веб-сайта. Это неудачно, так как отключить это лучшая практика производительности. Enable it in your web.config и выключите его, когда закончите.

(наконечник шляпы к Bryan Allott)

1

В качестве решения можно добавить <% @ Page AutoEventWireup = "истина" %> к вершине C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ DefaultWsdlHelpGenerator.aspx

Смежные вопросы