Что не так с этим типом кода.aspx?

У меня есть один медведь времени, пытающийся выяснить, почему унаследованный проект не будет компилироваться для меня; Я получаю только одну ошибку - "Ссылка на объект не установлена", которую обычно просто исправить, но в этом случае она не дает подробных сведений о том, в каком именно файле возникла проблема. См. Первоначальный вопрос со многими обновлениями.

У меня есть подозрение, что за ошибкой стоит множество предупреждений, в которых говорится одно и то же (" ссылка на объект не установлена ​​для экземпляра объекта ").

Проблема в том, что код, генерирующий эти предупреждения, насколько я могу судить, не является проблематичным; но опять же, я не эксперт ASP.NET, и уж точно не в том, что касается стороны VB, для которой я абсолютный новичок.

Дважды щелкнув эти предупреждения ("Ошибка времени выполнения ASP.NET: ссылка на объект не установлена ​​на экземпляр объекта."), Я получаю строки, подобные этой:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="yanceys._Default" title="Web Order Entry" %>

Это происходит в нескольких папках под Проектом - эти папки имеют файл Default.aspx, под которым находится файл Default.aspx.vb.

Все они выглядят одинаково, за исключением того, что предшествует "._Default" в элементе Inherits ("yanceys" ниже):

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="yanceys._Default" title="Web Order Entry" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Order Entry Login Page</title>
</head>
<body>
<form id="form1" runat="server">
    <div>
    </div>
</form>
</body>
</html>

И файлы Default.aspx.vb тоже совпадают:

Namespace yanceys
    Partial Class _Default
        Inherits Page

        Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
            Session("SelectedMenu") = "Home"
            Response.Redirect("../Login.aspx?MemberNo=042")
        End Sub
    End Class
End NameSpace

... за исключением пространства имен ("yanceys" выше) и MemberNo ("042" выше), которые уникальны для каждого файла Default.aspx.vb.

В чем может быть проблема? Какое может быть решение?

ОБНОВИТЬ

Когда я выполнил глобальный поиск по "пространству имен", чтобы увидеть, что я мог бы добавить к "yanceys", чтобы заставить его работать, количество предупреждений увеличилось до одного для каждого файла этого типа, все одинаковые ("Ошибка времени выполнения ASP.NET: ссылка на объект не установлена ​​на экземпляр объекта."), Все указывают на ту же строку, что и преступник:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="yanceys._Default" title="Web Order Entry" %>

Это заставляет меня думать, что если я смогу решить эти Предупреждения, Ошибка (той же самой полосы, а именно, "Ссылка на объект не установлена ​​на экземпляр объекта") также будет устранена.

ОБНОВЛЕНИЕ 2

Следуя совету TS, я открыл VS (2013) в качестве администратора, затем Файл> Открыть веб-сайт...

Восстановление сработало; сборка дает мне 1 ошибку, как и раньше, но другую:

Ошибка 1 Ошибка использования раздела, зарегистрированного как allowDefinition='MachineToApplication' за пределами уровня приложения. Эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS. C:\MemberOrderEntry\MembersOrderEntry\MembersOrderEntry\Mobile\web.config 75

ПРИМЕЧАНИЕ. В результате этого решение также будет названо "localhost_2030"; это кажется странным для меня...

ОБНОВЛЕНИЕ 3

В ответ на предложение TS я не вижу способа преобразовать файл из Code File в Code-behind.

Когда я щелкаю правой кнопкой мыши по проекту, я вижу это:

... и когда я щелкаю правой кнопкой мыши по отдельному файлу.vb, я вижу это:

ОБНОВЛЕНИЕ 4

Чтобы быть немного яснее, предупреждение (и, вероятно, связанная с ним "слепая" ошибка) выглядит примерно так в списке ошибок, когда я нажимаю два раза на сообщение с предупреждением:

... и проблемный файл находится в папке проекта, как показано здесь:

1 ответ

Решение

Я обнаружил, что это написано котом с нерешительной фамилией, что звучало многообещающе, поэтому я закрыл VS, удалил два файла *.suo, снова открыл VS ("Как администратор"), а затем проект, попробовал Build > Rebuild Web Site, и получил:

Error   1   compiler initialization failed unexpectedly: Project already has a reference to assembly System.Web.Extensions. A second reference to 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\System.Web.Extensions.dll' cannot be added. vbc : Fatal

2-х нажатие на ошибку никуда не привело.

Я подумал: что теперь?Где вторая ссылка на System.Web.Extensions.dll, которая пытается быть добавлена, и как я могу предотвратить это?

Между тем, раздражение, связанное с сообщениями о соединениях TFS, заставило меня пойти по этому пути - избавить проект от всех следов TFS. Ответы здесь об удалении некоторых файлов (*.vsssssssssccccc и т. Д.) И удалении некоторых глобальных разделов из файла.sln не только сняли это раздражение, но и, по-видимому, решили другие проблемы.

Итак, некоторая комбинация из следующего:

Deleting the .suo files
Cleaning out the TFS files and sections
Running VS as Administrator

... довел проект до состояния, в котором он наконец-то работает! Кажется, что это смесь магии и случайности, что эти странные ошибочные сообщения "просто ушли" в результате этих вращений, но я предполагаю, что я приму тот факт, что это, по крайней мере, наконец работает.

Также обратите внимание (я не знаю, почему или как это вписывается в то, что произошло), что что-то в этих изменениях заставило меню "ВЕБ-САЙТ" в VS изменить на "ПРОЕКТ"

ОБНОВИТЬ

И сегодня меню снова изменилось, с ПРОЕКТА на ВЕБ-САЙТ, но оно все еще строится и запускается, так что, думаю, я просто в ужасе почесываю голову и продолжаю беспечно продолжать.

Другие вопросы по тегам