Синтаксис преобразования веб-конфигурации - PullRequest
9 голосов
/ 28 октября 2011

Я следовал руководству по 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 ]

6 голосов
/ 28 октября 2011

Просто простая опечатка. Вам нужно изменить sqlConnectionString на stateConnectionString. У вас есть это прямо в web.config, но не преобразование. В противном случае преобразование выглядит хорошо.

Вам необходимо изменить sqlConnectionString здесь:

<sessionState sqlConnectionString="data source=localhost;uid=userId;pwd=password;" xdt:Transform="SetAttributes(sqlConnectionString)" />

Для StateConnectionString:

<sessionState stateConnectionString="data source=localhost;uid=userId;pwd=password;" xdt:Transform="SetAttributes(stateConnectionString)" />
4 голосов
/ 31 октября 2011

После перерыва и возвращения к нему свежим взглядом я понял, что синтаксис на самом деле очень хорош.

Проблема заключалась в том, что в какой-то момент - не знаю, когда - элемент былпереместил (может быть, ошибка копирования / вставки мной или другим членом команды) из элемента, которому он принадлежал, поэтому он просто висел там, а не там, где должен был быть.

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

Итак, извлеченный урок: если преобразование таинственным образом не применяется к одному элементу (когда он отлично работает на другом), убедитесь, что элемент правильно расположен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...