Asp.net
Web 配置轉換語法
我一直在關注Web Config Transformation的 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)" />上面的工作很好,所以我認為它也是如此。
誰能看到我哪裡出錯了?
休息一下,重新審視它後,我意識到語法實際上還不錯。
問題是,在某個時刻——不知道什麼時候——元素已經從它所屬的元素中移出(可能是我自己或其他團隊成員的複制/粘貼錯誤),所以它只是掛在那里而不是它應該掛在哪裡已經。
一旦我回到它應該在的位置,問題就解決了,變換再次正確檢測元素並應用變換。
所以,吸取的教訓:如果一個轉換神秘地沒有應用於一個元素(當它在另一個元素上工作得很好時),請檢查以確保元素的位置正確。
只是一個簡單的錯字。您需要將 sqlConnectionString 更改為 stateConnectionString。您在 web.config 中擁有它,但不是轉換。否則,變換看起來不錯。
您需要在此處更改 sqlConnectionString:
<sessionState sqlConnectionString="data source=localhost;uid=userId;pwd=password;" xdt:Transform="SetAttributes(sqlConnectionString)" />狀態連接字元串:
<sessionState stateConnectionString="data source=localhost;uid=userId;pwd=password;" xdt:Transform="SetAttributes(stateConnectionString)" />