我创建了两个我要添加到web.config的自定义成员资格提供程序。第一个是asp.net应用程序将使用的默认值。第二个将由我在同一个应用程序中的WCF服务调用。
我的web.config的成员资格部分中的提供程序如下所示:
<add name="SiteProvider" type="MyNameSpace.SiteProvider, MyNameSpace" ApplicationName="Si2" EnablePasswordReset="true" PasswordStrengthRegularExpression="(?=[\w$#_ ]{8,})(?=.*?\d)(?=.*?[A-z])[\w$#_ ]*" ResetPasswordMinimumLength="8" ResetPasswordPattern="USL9SLU9SLU9SLLLL" ResetPasswordAllowDuplicateCharacters="false" />
<add name="WCFProvider" type="MyNameSpace.WCFProvider, MyNameSpace" ApplicationName="Si2" EnablePasswordReset="true" PasswordStrengthRegularExpression="(?=[\w$#_ ]{8,})(?=.*?\d)(?=.*?[A-z])[\w$#_ ]*" ResetPasswordMinimumLength="8" ResetPasswordPattern="USL9SLU9SLU9SLLLL" ResetPasswordAllowDuplicateCharacters="false" />
我收到错误“已添加项目。键入字典:'SiteProvider'密钥被添加:'SiteProvider'”我随时浏览网站。
这对我来说没有意义,因为他们有独特的名字。如果我删除第二个提供商,该网站是可浏览的。
任何有关添加此第二个提供商的帮助都将不胜感激。
答案 0 :(得分:0)
最简单的解决方案是将Web服务移动到另一个项目中。
此外,请确保在添加提供商之前致电<clear/>
并添加默认提供商...
<membership defaultProvider="Siteprovider">
<providers>
<clear/>
<add name="SiteProvider" type="MyNameSpace.SiteProvider, MyNameSpace" ApplicationName="Si2" EnablePasswordReset="true" PasswordStrengthRegularExpression="(?=[\w$#_ ]{8,})(?=.*?\d)(?=.*?[A-z])[\w$#_ ]*" ResetPasswordMinimumLength="8" ResetPasswordPattern="USL9SLU9SLU9SLLLL" ResetPasswordAllowDuplicateCharacters="false" />
<add name="WCFProvider" type="MyNameSpace.WCFProvider, MyNameSpace" ApplicationName="Si2" EnablePasswordReset="true" PasswordStrengthRegularExpression="(?=[\w$#_ ]{8,})(?=.*?\d)(?=.*?[A-z])[\w$#_ ]*" ResetPasswordMinimumLength="8" ResetPasswordPattern="USL9SLU9SLU9SLLLL" ResetPasswordAllowDuplicateCharacters="false" />
</providers>
</membership>
您可以在此论坛帖子中尝试解决方案:http://forums.asp.net/p/1112089/1714276.aspx
您是否尝试在webservice文件夹中添加单独的web.config文件?我怀疑它会起作用,但值得一试。