Это мое первое сообщение здесь, так что не стесняйтесь меня :) У меня возникла странная проблема с ASP.Net-страницей. Я получаю сообщение об ошибке, не устанавливаемое при передаче строкового литерала переменной. Вот ошибка, которую я получаю.Ошибка присвоения строки ASP.Net
[NullReferenceException: Объект ссылка не указывает на экземпляр объекта .]
Project.Page.Page_Load (отправитель объекта, EventArgs е) в C: \ Проект \ Page.aspx.vb : 10
System.Web.UI.Control.OnLoad (EventArgs е): +91
System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
И вот код, на который указывает ошибка. Последняя строка в этом фрагменте является строка 10 ошибка жалуется
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim teststring As String
teststring = "test"
Кажется, он не на доступ к любой ссылочный тип, даже если он объявлен локально в функции нагрузки. Первоначально я обнаружил проблему, когда Request.IsSecureConnection удалил меня. В конце концов я обнаружил, что могу заменить его на приведенный выше код и провалиться таким же образом.
Проблема не всегда происходит. Кажется, это вызвано публикацией обновления из Visual Studio или когда я отправляюсь домой на день, а сервер сидит без дела всю ночь. Кажется, что одна или две утилиты для пула приложений очищают его, и страница работает правильно.
Любая помощь была бы принята с благодарностью. Я занимаюсь разработкой настольных систем на несколько лет, но я довольно новичок в веб-разработке. Так что, возможно, это что-то очевидное, я настроен неправильно. Я в настоящее время использую .NET 4 на IIS 6.
UPDATE
я был в состоянии определить линию, используя рекомендации копирования страницы, комментируя все, а потом раскомментировать одну строку в то время, , Линия моя тестовая страница начал давать ошибку был это один
Dim StateName As String = State.Attribute (XName.Get ("имя")). Значение
Этот код находится в Еогеасп над IEnumerable (XElement). Трассировка стека по-прежнему указывает на назначение строки, но все остальные трассировки стека находятся на месте, поэтому я не думаю, что это плохой pdb.
Кроме того, когда на этот раз произошла ошибка, никакая переработка пула приложений или его остановка и запуск не устранили бы ошибку. Я, наконец, снова заработал, переключив приложение в другой пул приложений.
Я согласен с тем, что этот код не должен иметь возможность указывать нулевую ссылку. Я проверил метки времени на своих pdb и dll, и они совпали; хотя, я не уверен, что это точный способ сказать, что они совпадают. – cduncan
Я согласен, что эта строка кода не может выбрасывать исключение нулевой ссылки. Ошибка находится где-то в другом месте, но вам нужно сузить место. Можете ли вы повторить ошибку на другой пустой странице, где это единственный код на странице? Если нет, добавьте вещи на свою пустую страницу с этой страницы до тех пор, пока не произойдет ошибка, и это, вероятно, настоящая причина, если она находится на этой странице вообще. –