Синтаксис преобразования веб-конфигурации
Я следовал руководству MSDN по трансформации веб-конфигурации, и в целом добился успеха.
Тем не менее, одна строка моей веб-конфигурации дает мне проблемы, и я могу только предположить, что это потому, что я неправильно понимаю руководство и использую неправильный синтаксис.
Я надеюсь, что кто-то сможет указать на мою ошибку и будет благодарен, если это так.
Оскорбительная строка в преобразовании:
<sessionState sqlConnectionString="data source=localhost;uid=userId;pwd=password;" xdt:Transform="SetAttributes(sqlConnectionString)" />
Строка в оригинальной веб-конфигурации:
<sessionState mode="SQLServer" sqlConnectionString="data source=networkAlias;uid=userId;pwd=password;" cookieless="UseDeviceProfile" timeout="120" />
Я надеялся, что преобразование заменит атрибут "sqlConnectionString", изменив детали подключения. К сожалению, линия не затронута.
Я использовал точно такой же синтаксис для:
<network host="localhost" xdt:Transform="SetAttributes(host)" />
Все вышеперечисленное прекрасно работает, поэтому я предположил, что так будет и с другими.
Кто-нибудь может увидеть, где я иду не так?
2 ответа
Сделав перерыв и вернувшись к нему свежим взглядом, я понял, что синтаксис на самом деле просто великолепен.
Проблема заключалась в том, что в какой-то момент - не знаю, когда - элемент был перемещен (возможно, ошибка копирования / вставки мной или другим членом команды) из элемента, которому он принадлежал, поэтому он просто висел там, а не там, где должен Был.
Когда я вернулся туда, где и должен был быть, проблема решена, преобразование снова правильно обнаружило элемент и применило преобразование.
Итак, извлеченный урок: если преобразование таинственным образом не применяется к одному элементу (когда он отлично работает на другом), убедитесь, что элемент правильно расположен.
Просто простая опечатка. Вам нужно изменить sqlConnectionString на stateConnectionString. У вас есть это прямо в web.config, но не преобразование. В противном случае преобразование выглядит хорошо.
Вам нужно изменить sqlConnectionString здесь:
<sessionState sqlConnectionString="data source=localhost;uid=userId;pwd=password;" xdt:Transform="SetAttributes(sqlConnectionString)" />
Чтобы заявить ConnectionString:
<sessionState stateConnectionString="data source=localhost;uid=userId;pwd=password;" xdt:Transform="SetAttributes(stateConnectionString)" />