2016-08-19 5 views
0

Я отлаживаю приложение asp.net. Он работает безупречно в тестовой среде, однако я получаю исключение для ссылки на настоящий сервер. Я использую ninject. Проблема возникла из Ninject I suppose.Here является проблематичной фрагмент коды:Я получаю исключение null-указателя в приложении asp.net

public partial class PersonelAylikRapor : MasterClass 
{ 
    protected void btnSorgula_Click(object sender, EventArgs e) 
    { 
     //other codes ommited for brevity 
     DateTime baslangicTarihi = DateTime.MinValue; 

     //arac is null here. 
     baslangicTarihi = this.arac.CevirDateTimea("01." + ddlAy.SelectedValue + "." + ddlYil.SelectedValue);  

    } 
} 

переменной AraC должна была решена в MASTERCLASS, так как класс отца, так что я не проверить нулевой эталонный вопрос.

MasterClass - это место, где я устанавливаю ядро ​​ninject. Вот содержание MasterClass:

public class MasterClass : System.Web.UI.Page 
{ 

IKernel ninjectKernel = null; 
private bool cekirdekKurulduMu = false; 
public IPersonelIsKurali personelik = null;  
public IAraclarTaha arac = null; 
public ITurnikePersonelIsKurali turnikepersonelik = null; 
public IPersonelBirimlerIsKurali personelbirimlerik = null; 
public ITurnikeIslemlerIsKurali turnikeIsKurali = null; 
public IPersonelIliskilendir personelilisiklendirik = null; 
public IBirimlerIsKurali birimlerik = null; 
public IPersonelIzinIsKurali personelizinik = null; 
public IServisIsKurali servisIsKurali = null; 
public FonksiyonSonuc fs = null; 
public List<PersonelKunye> listpersonelkunye = null; 
public List<uint> listgorebilecegipersonelid = null; 

public MasterClass() 
{ 

} 

protected override void OnPreInit(EventArgs e) 
{ 
    try 
    { 
     base.OnPreInit(e); 

     if (this.cekirdekKurulduMu == false) 
     { 

      this.cekirdekKurulduMu = true; 
      this.ninjectKernel = new StandardKernel(); 
      this.ninjectCekirdegiKur(this.ninjectKernel); 
      this.DegiskenlereAta(); 
     } 

    } 
    catch (Exception ex) 
    { 
     IAraclarTaha arac = new AraclarTaha(); 
     FonksiyonSonuc fs = new FonksiyonSonuc(true); 

     fs = arac.HatayiVeritabaninaYaz(ex, OrmanSuTypes.Enums.HataCiddiyetiEnum.OLUMCUL); 

     if (fs.fonksiyonBasariDurumu == false) 
     { 

      throw ex; 
     } 


    } 
} 

private void ninjectCekirdegiKur(IKernel ninjectKernel) 
{ 


    this.ninjectKernel = new StandardKernel(); 
    this.ninjectKernel.Bind<IPersonelBirimlerIsKurali>().To<PersonelBirimlerIsKurali>(); 
    this.ninjectKernel.Bind<IPersonelIzinIsKurali>().To<PersonelIzinIsKurali>(); 
    this.ninjectKernel.Bind<IPersonelIsKurali>().To<PersonelIsKurali>(); 
    this.ninjectKernel.Bind<IAraclarTaha>().To<AraclarTaha>().WithConstructorArgument("debugMode", Araclar.DebugModdaMi()); 
    this.ninjectKernel.Bind<ITurnikeIslemlerIsKurali>().To<TurnikeIslemlerIsKurali>(); 
    this.ninjectKernel.Bind<IBirimlerIsKurali>().To<BirimlerIsKurali>(); 
    this.ninjectKernel.Bind<IPersonelIliskilendir>().To<PersonelIiskilendirIsKurali>(); 
    this.ninjectKernel.Bind<ITurnikePersonelIsKurali>().To<TurnikePersonelIsKurali>(); 
    this.ninjectKernel.Bind<IServisIsKurali>().To<ServisIsKurali>(); 


} 

    public void DegiskenlereAta() 
{ 


    if (this.arac == null) 
    { 
     this.arac = this.ninjectKernel.Get<IAraclarTaha>(); 
    } 
    if (this.personelik == null) 
    { 
     this.personelik = this.ninjectKernel.Get<IPersonelIsKurali>(); 
    } 
    if (this.turnikepersonelik == null) 
    { 
     this.turnikepersonelik = this.ninjectKernel.Get<ITurnikePersonelIsKurali>(); 
    } 
    if (this.personelbirimlerik == null) 
    { 
     this.personelbirimlerik = this.ninjectKernel.Get<IPersonelBirimlerIsKurali>();   
    } 
    if (this.turnikeIsKurali == null) 
    { 
     this.turnikeIsKurali = this.ninjectKernel.Get<ITurnikeIslemlerIsKurali>(); 
    } 
    if (this.personelilisiklendirik == null) 
    { 
     this.personelilisiklendirik = this.ninjectKernel.Get<IPersonelIliskilendir>(); 
    } 
    if (this.birimlerik == null) 
    { 
     this.birimlerik = this.ninjectKernel.Get<IBirimlerIsKurali>(); 
    } 
    if (this.personelizinik == null) 
    { 
     this.personelizinik = this.ninjectKernel.Get<IPersonelIzinIsKurali>(); 
    } 
    if (this.fs == null) 
    { 
     this.fs = new FonksiyonSonuc(true); 
    } 
    if (this.servisIsKurali == null) 
    { 
     this.servisIsKurali = this.ninjectKernel.Get<IServisIsKurali>(); 
    } 

} 

} 

Что в этом плохого? Заранее спасибо.

Edit-1: Вот визуальное пояснение ошибки: Application Error

+2

Если * работает безупречно в тестовой среде *, как вы описали, я бы поспорить, что проблема не связана с вашим кодом и есть некоторая конфигурация разница между вашим тестовым и prod веб-серверами. Я бы начал там и выяснил, что другое? (Возможно, тест имеет .dll prod не ... и т. Д.) – mituw16

+0

Какое фактическое исключение вы получаете? – ArunGeorge

+0

Вы получаете нулевую ссылку ... не нулевой указатель .. –

ответ

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

  • Нет связанных вопросов^_^