我有一个XSLT文件,用于写入我的Web.Config作为Umbraco构建过程的一部分。写入诸如“umbracoConfigurationStatus”值之类的东西可以正常工作,就像编写新的配置文件成员资格部分一样。为什么XSLT更新Web.Config会部分失败?
但是,尝试更新或创建UmbracoMembershipProvider部分的部分正在导致我各种悲伤。它不会更新或写入。我错过了什么?
这里是XSLT文件的大部分内容:
<xsl:template match="/configuration/appSettings/add[@key='umbracoConfigurationStatus']/@value">
<xsl:attribute name="value">4.7.1.1</xsl:attribute>
</xsl:template>
<xsl:template match="/configuration/system.web">
<xsl:copy>
<xsl:call-template name="copy-children" />
<xsl:element name="profile">
<xsl:attribute name="defaultProvider">
<xsl:text>UmbracoMemberProfileProvider</xsl:text>
</xsl:attribute>
<xsl:attribute name="enabled">
<xsl:text>true</xsl:text>
</xsl:attribute>
<xsl:attribute name="inherits">
<xsl:text>umbraco.cms.businesslogic.member.MemberProfile</xsl:text>
</xsl:attribute>
<xsl:element name="providers">
<xsl:element name="clear" />
<xsl:element name="add">
<xsl:attribute name="name">
<xsl:text>UmbracoMemberProfileProvider</xsl:text>
</xsl:attribute>
<xsl:attribute name="type">
<xsl:text>umbraco.providers.members.UmbracoProfileProvider, umbraco.providers</xsl:text>
</xsl:attribute>
</xsl:element>
</xsl:element>
<xsl:element name="properties">
<xsl:element name="clear" />
<xsl:element name="add">
<xsl:attribute name="name">
<xsl:text>auth_guid</xsl:text>
</xsl:attribute>
<xsl:attribute name="allowAnonymous">
<xsl:text>false</xsl:text>
</xsl:attribute>
<xsl:attribute name="provider">
<xsl:text>UmbracoMemberProfileProvider</xsl:text>
</xsl:attribute>
<xsl:attribute name="type">
<xsl:text>System.String</xsl:text>
</xsl:attribute>
</xsl:element>
<xsl:element name="add">
<xsl:attribute name="name">
<xsl:text>firstName</xsl:text>
</xsl:attribute>
<xsl:attribute name="allowAnonymous">
<xsl:text>false</xsl:text>
</xsl:attribute>
<xsl:attribute name="provider">
<xsl:text>UmbracoMemberProfileProvider</xsl:text>
</xsl:attribute>
<xsl:attribute name="type">
<xsl:text>System.String</xsl:text>
</xsl:attribute>
</xsl:element>
<xsl:element name="add">
<xsl:attribute name="name">
<xsl:text>lastName</xsl:text>
</xsl:attribute>
<xsl:attribute name="allowAnonymous">
<xsl:text>false</xsl:text>
</xsl:attribute>
<xsl:attribute name="provider">
<xsl:text>UmbracoMemberProfileProvider</xsl:text>
</xsl:attribute>
<xsl:attribute name="type">
<xsl:text>System.String</xsl:text>
</xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:copy>
</xsl:template>
<xsl:template name="copy-children">
<xsl:copy-of select="./*"/>
</xsl:template>
<xsl:template match="/configuration/system.web/membership/providers">
<xsl:copy>
<xsl:call-template name="copy-children" />
<xsl:element name="add">
<xsl:attribute name="name">
<xsl:text>UmbracoMembershipProvider</xsl:text>
</xsl:attribute>
<xsl:attribute name="type">
<xsl:text>umbraco.providers.members.UmbracoMembershipProvider</xsl:text>
</xsl:attribute>
<xsl:attribute name="enablePasswordRetrieval">
<xsl:text>false</xsl:text>
</xsl:attribute>
<xsl:attribute name="enablePasswordReset">
<xsl:text>false</xsl:text>
</xsl:attribute>
<xsl:attribute name="requiresQuestionAndAnswer">
<xsl:text>false</xsl:text>
</xsl:attribute>
<xsl:attribute name="defaultMemberTypeAlias">
<xsl:text>SiteMember</xsl:text>
</xsl:attribute>
<xsl:attribute name="umbracoApprovePropertyTypeAlias">
<xsl:text>isApproved</xsl:text>
</xsl:attribute>
<xsl:attribute name="umbracoLockPropertyTypeAlias">
<xsl:text>isLocked</xsl:text>
</xsl:attribute>
<xsl:attribute name="passwordFormat">
<xsl:text>Hashed</xsl:text>
</xsl:attribute>
</xsl:element>
</xsl:copy>
</xsl:template>
<!-- Default templates to match anything else -->
<xsl:template match="@*">
<xsl:copy/>
</xsl:template>
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
我想要去的国家是:
<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="SiteMember" umbracoApprovePropertyTypeAlias="isApproved" umbracoLockPropertyTypeAlias="isLocked" passwordFormat="Hashed" />
好看的解决方案,但仍然没有奏效。什么可以阻止这条线? – 2012-04-14 21:59:34
在没有看到你的web.config文件的情况下说有点棘手 – 2012-04-15 08:14:32
我已经在这里添加了完整的文件:http://pastebin.com/juKagtxv。有趣的是,如果我删除以“开头的部分,则更新成功,但仅限于某一点,返回错误:”无法添加属性和命名空间节点在已添加文本,注释,pi或子元素节点之后添加到父元素。“ –
2012-04-16 10:57:07