Как устранить ошибку «Тэг сервера неправильно сформирован.» Ошибка на sharepoint? - PullRequest
4 голосов
/ 30 апреля 2010

Я пытаюсь отредактировать устаревший сайт wss3 sharepoint.

Возиться со страницей aspx с более чем 700 строками кода. Я получил сообщение «Серверный тег сформирован неправильно». ошибка на sharepoint и трюк? content = 1 не работает.

У кого-нибудь есть совет, как добраться до линии, вызывающей проблему? Я ожидаю что-то вроде aspnet ysod, по крайней мере, это полезно.

Если оно чего-то стоит, у меня есть доступ к самому серверу.

Обновление: Я знаю, что ошибка в том, что я испортил разметку, как любезно указывает ArenB. Я хотел бы получить подсказку по , где на 700 строках - ошибка.

Обновление 2: Я нашел обходной путь и опубликовал его в качестве ответа, но вопрос все еще открыт, ожидая, пока кто-нибудь ответит, как получить более описательное сообщение об ошибке.

Ответы [ 4 ]

7 голосов
/ 20 декабря 2013

Выполнение ctrl+k,d на странице в Visual Studio должно дать вам приблизительное значение ошибки. Ярлык пытается отформатировать страницу aspx для вас, и если она не может отформатировать, он говорит вам, почему, указывая вам на строку, где он нашел что-то проблематичное.

3 голосов
/ 30 апреля 2010

Серверный тег неправильно сформирован означает, что у вас есть неправильный тег. То есть:

<asp:Label id="myLabel" runat="server"
    Stuff!
</asp:Label>

Обратите внимание на отсутствие > в верхней части тега

Другой способ это может произойти, если вы намеревались создать завершенный тег <tag />, но забыли /, который оставляет вас с отсутствующим конечным тегом.


  • Что касается определения местоположения линии, используйте механизм diff, чтобы увидеть измененные вами линии, и попытайтесь определить неверный тег.
  • Или вы можете запустить валидатор xml для кода, хотя asp может стать странным с ванильным валидатором xml.
2 голосов
/ 24 октября 2016

Я исправил проблему благодаря ответу @ Aren. Мой XML был в порядке, ну почти. Вы не можете использовать "..." внутри " ". Вы должны переключиться на '.

Я написал:

<asp:Repeater ID="LeadersBlock" runat="server" Visible="false">
    <ItemTemplate>
        <asp:Literal Text="<%# Eval("Employee") %>" />
    </ItemTemplate>
</asp:Repeater>

вместо:

<asp:Repeater ID="LeadersBlock" runat="server" Visible="false">
    <ItemTemplate>
        <asp:Literal Text='<%# Eval("Employee") %>' />
    </ItemTemplate>
</asp:Repeater>

Надеюсь, это поможет сэкономить время.

1 голос
/ 30 апреля 2010

Хорошо, я разобрался с ручным способом, который может быть полезен кому-то, но он также не идеален.

Сначала возьмите код страницы aspx и вставьте его в другой файл (в качестве резервной копии). Затем удалите WebPart на WebPart, затем WebPartZones и затем любую другую возможную разметку на стороне сервера, пока страница не перестанет ломаться. Таким образом, вы, по крайней мере, будете знать, где находится ошибка.

Для меня на этот раз это был WebPartZone, в котором было два атрибута без пробелов между ними. Ошибки такого рода могут быть очень хитрыми.

Я больше никогда не буду делать этот сумасшедший варварский взлом на странице sharep. Sharepoint.

...