摘要:【原文地址】 Common Gotcha: Don't forget to when adding providers 【原文发表日期】 Monday, November 20, 2006 11:22 PM 最近,我帮了几个人,他们在如何在web.config文件里添加新的成员(Membership),角色(Role)和用户信息(Profile)提供器(provider)上遇上了问题。如果你会在你的web.config文件里添加提供器声明的话,请继续读下去,了解一下如何避免一个常见的问题。 症状: 你要配置ASP.NET 2.0来在远程SQL数据库里存储你的成员/角色管理/用户信息数据。为达成这个目的,你首先使用aspnet_regsql.exe工具在数据库里生成了合适的数据定义。你决定不在你的web.config文件里覆盖"LocalSqlServer"这个连接字符串,而是象下面这样,在你的web.config文件里注册一个新的提供器 (注:下面这个注册有个bug,所以别拷贝/粘贴): <membership> <providers> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="MyDatabase" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/" /> </providers> </membership> 在注册上面这个提供器时,你很小心地明确设置了applicationName属性,因此避免了另外一个非常常见的问题。 但,当你在一个没有SQL Express的机器上运行你的应用时,你看到了有点奇怪的行为。你也许会得到象这样的出错信息: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) (在建立到服务器的连接时发生了错误。 当连接到 SQL Server 2005时,连接失败可能是因为在默认设置下 SQL Server 不允许远程连接这个事实导致的。(提供器:SQL网络接口,错误:26 - 查找指定服务/实例时出错)) 你也许会发现web管理工具在连接到你的数据库时也有问题,或者你用它创建的角色/用户没有在上面配置的数据库里正确地存储下来。 问题的起因: 上面这个问题的根本原因取决于新的提供器是如何在web.config 文件注册的。 web.config 文件里的......[
阅读全文]