Ошибка синтаксического анализа значения AppSettings со строкой запроса - PullRequest
17 голосов
/ 10 июня 2011

В моих AppSettings в web.config у меня есть что-то вроде этого:

<appSettings>
    <add key="ExternalSystemUrl" value="http://domain.com/page.aspx?id={0}&action=eat&object=bacon" />
</appSettings>

Однако, кажется, что когда амперсанд (&) включен в значение AppSettings, ASP.NET выдаетследующая ошибка:

Произошла ошибка при синтаксическом анализе EntityName

Почему это происходит, и как я могу включить подобные URL-адреса в App.config?

Ответы [ 3 ]

47 голосов
/ 10 июня 2011

Заменить & на &amp; (экранировать):

<add
    key="ExternalSystemUrl"
    value="http://domain.com/page.aspx?id={0}&amp;action=eat&amp;object=bacon" />

Это общее требование для любого допустимого XML-файла.

См. Где я могу получить список управляющих символов XML-документа?

5 голосов
/ 10 июня 2011

Вы можете попробовать использовать &amp;.

4 голосов
/ 10 июня 2011

В XML амперсанд сообщает синтаксическому анализатору: «данные, следующие непосредственно за этим амперсандом, являются сущностью, которую необходимо преобразовать».Если данные, следующие непосредственно за вами, не являются действительными сущностями XML, вы получите эту ошибку.Если возможно, используйте &amp; для амперсанда в XML.

...