Я отлаживаю приложение 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: Вот визуальное пояснение ошибки:
Если * работает безупречно в тестовой среде *, как вы описали, я бы поспорить, что проблема не связана с вашим кодом и есть некоторая конфигурация разница между вашим тестовым и prod веб-серверами. Я бы начал там и выяснил, что другое? (Возможно, тест имеет .dll prod не ... и т. Д.) – mituw16
Какое фактическое исключение вы получаете? – ArunGeorge
Вы получаете нулевую ссылку ... не нулевой указатель .. –