2009-10-29 3 views
0

У меня есть веб-приложение, которое только для сохранения пути загруженного видеофайла к базе данных sqlserver.i имеет в приложении бизнес-логик.ссылка на объект не установлена ​​на экземпляр объекта

Я использую asp.net/vb.net. Я положил это в BLL для соединения с хранимой процедурой,

Dim Db As Database = DatabaseFactory.CreateDatabase() 

есть ошибка that--

object reference not set to an instance of an object 

если один знает, пожалуйста, помогите мне.

Вот трассировки стека:

[NullReferenceException: Object reference not set to an instance of an object.] 
Microsoft.Practices.EnterpriseLibrary.Data.DatabaseConfigurationView.get_DefaultName() +38 
Microsoft.Practices.EnterpriseLibrary.Data.DatabaseMapper.MapName(String name, IConfigurationSource configSource) +65 
Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfigurationNameMappingStrategy.BuildUp(IBuilderContext context, Type t, Object existing, String id) +122 
Microsoft.Practices.ObjectBuilder.BuilderBase`1.DoBuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies) +316 
Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies) +168 
Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, String idToBuild, Object existing, PolicyList[] transientPolicies) +104 
Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp(IReadWriteLocator locator, IConfigurationSource configurationSource) +228 
Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp(IConfigurationSource configurationSource) +65 
Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.NameTypeFactoryBase`1.CreateDefault() +72 
Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase() +86 
Uploader.BllUpdate.SaveFileDetails() in D:\Developers\Sinoy\uploader\Uploader\Uploader\BLL\BllUpdate.vb:37 
Uploader.Upload.UploadBtn_Click(Object sender, EventArgs e) in D:\Developers\Sinoy\uploader\Uploader\Uploader\Forms\Upload.aspx.vb:17 
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105 
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107 
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102 
+0

Отметьте свой вопрос используемой технологией. Похоже, это может быть визуально базовым, но я не знаю, какого рода. Вы не получите ответ, как он есть сейчас. –

+0

Возможный дубликат [Что такое исключение NullReferenceException и как его исправить?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Plutonix

ответ

0

ссылка на объект не указывает на экземпляр объекта означает, что имеется ссылка, который не был экземпляр, прежде чем он был использован. Ссылка по-прежнему равна нулю (или в VB lingo, Nothing).

Поймать исключение и проверить трассировку стека на том месте, где оно произошло.

+2

В издевательстве над документацией MSDN: «(** Nothing ** в Visual Basic)» – 2009-10-29 05:25:15

+0

о да. Ничего ... полностью забыл о ВБ. –

+0

@pst LOL. Ничего... – mjv

0

Обычно, когда вы получаете эту ошибку, это связано с тем, что перед назначением экземпляра класса используется переменная класса (такая как DatabaseFactory или переменная внутри этого класса), как и ключевое слово New в инструкции Dim назначение. Существуют и другие способы назначения экземпляров переменной. Если вы этого не сделаете, вы получите это сообщение об ошибке.

0

Вызов в статическом методе Microsoft Enterprise Library DatabaseFactory.CreateDatabase приводит к сбою чего-либо внутри Microsoft Enterprise Library - он использует переменную, которая не имеет значения (это Nothing). По какой-то причине он не может подключиться к вашей базе данных. Почему он не бросает более информативное исключение, которого я не знаю, - вам придется обратиться к Microsoft.

Я ничего не знаю о корпоративной библиотеке, но я думаю, что проверил бы ваш web.config or app.config configuration settings, глядя на строки подключения к базе данных для базы данных по умолчанию. Это основано на 5-секундном чтении снятого с documentation и некоторых Googling of online forums.

0

Во-первых, убедитесь, что вы установили базу данных по умолчанию, т.е.

Кроме того, если это виртуальный каталог, убедитесь, что файл Web.config ваш внутри этого виртуального каталога не получает переопределены Web корневого directoriy в. config Элементы, связанные с EnterpriseLibrary.

0

Вы проверили ваш web.config? Правильно ли вы установили строку подключения к базе данных? Эта проблема также возникает, когда ваша строка соединения отсутствует или не подходит.

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