Синтаксис преобразования веб-конфигурации

Я следовал руководству 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)" />
Другие вопросы по тегам