我一直在遵循Web Config Transformation的MSDN指南,大体上已经取得了成功。
然而,我的web配置中有一行给我带来了麻烦,我只能假设这是因为我误解了指南并使用了错误的语法。
我希望有人能够指出我的错误,如果是这样,我将不胜感激。
转换中有问题的行是:
<sessionState sqlConnectionString="data source=localhost;uid=userId;pwd=password;" xdt:Transform="SetAttributes(sqlConnectionString)" />原始web配置中的行是:
<sessionState mode="SQLServer" sqlConnectionString="data source=networkAlias;uid=userId;pwd=password;" cookieless="UseDeviceProfile" timeout="120" />我希望转换能够替换属性"sqlConnectionString",从而改变连接细节。不幸的是,这条线路没有受到影响。
我使用了完全相同的语法:
<network host="localhost" xdt:Transform="SetAttributes(host)" />上面的工作很好,所以我假设它也是这样的。
有人能看出我哪里错了吗?
发布于 2011-11-01 00:32:03
在休息了一下,并以一些新的眼光回到它之后,我意识到它的语法实际上是好的。
问题是,在某个时候-不知道什么时候-元素被移出了它所属的元素(可能是我或其他团队成员的复制/粘贴错误),所以它只是挂在那里,而不是它本应该在的地方。
一旦我回到了它应该在的地方,问题解决了,转换再次正确地检测到了元素并应用了转换。
因此,得到的教训是:如果转换神秘地没有应用于一个元素(当它在另一个元素上工作得很好时),请检查以确保该元素位于正确的位置。
发布于 2011-10-28 20:47:34
只是一个简单的打字错误。您需要将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)" />https://stackoverflow.com/questions/7929257
复制相似问题