2016-08-19 15 views
0

私はasp.netアプリケーションをデバッグしています。それはテスト環境で完璧に動作しますが、実際のサーバでnull参照例外が発生しています。私はninjectを使用しています。問題は、私suppose.Here ninjectから生じた問題のコード断片である:asp.netアプリケーションでnullポインタ例外が発生しています

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は、マスタークラスに解決されているはずですので、私はnull参照の問題をチェックしません。

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>(); 
    } 

} 

} 

何が問題なのですか?前もって感謝します。

編集-1:ここでは、エラーの視覚的な説明です: Application Error

+2

あなたが説明するように、それは* *テスト環境で完璧に動作した場合、私はこの問題は、あなたのコードではなく、いくつかの設定がある賭けるだろうテストとプロードWebサーバの違い。私はそこから始めて、何が違うのか理解していますか? (おそらく、テストには.dll prodはありません...など) – mituw16

+0

実際の例外は何ですか? – ArunGeorge

+0

null参照... not nullポインタを取得しています.. –

答えて

関連する問題