.net中使用webpart,数据库报错,error:26的解决办法
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[SqlException (0x80131904): 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4849015
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject) +4862333
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +90
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +376
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +221
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +189
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +4863459
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +31
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +433
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +499
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.SqlClient.SqlConnection.Open() +122
System.Web.DataAccess.SqlConnectionHolder.Open(HttpContext context, Boolean revertImpersonate) +87
System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation) +221
System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider.GetConnectionHolder() +19
System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider.LoadPersonalizationBlobs(WebPartManager webPartManager, String path, String userName, Byte[]& sharedDataBlob, Byte[]& userDataBlob) +204
System.Web.UI.WebControls.WebParts.PersonalizationProvider.LoadPersonalizationState(WebPartManager webPartManager, Boolean ignoreCurrentUser) +94
System.Web.UI.WebControls.WebParts.WebPartPersonalization.Load() +103
System.Web.UI.WebControls.WebParts.WebPartPersonalization.LoadInternal() +23
System.Web.UI.WebControls.WebParts.WebPartManager.OnInit(EventArgs e) +293
System.Web.UI.Control.InitRecursive(Control namingContainer) +333
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Control.InitRecursive(Control namingContainer) +210
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +378
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.4927; ASP.NET 版本:2.0.50727.4927
解决办法:
1,已配置的个性化设置提供程序和数据库。默认情况下启用 Web 部件个性化设置,而且它使用 SQL 个性化设置提供程序 (SqlPersonalizationProvider) 和 Microsoft SQL Server Standard Edition 来存储个性化设置数据。本演练使用 SSE 和默认的 SQL 提供程序。如果安装了 SSE,则不需要进行任何配置。SSE 是作为 Microsoft Visual Studio 2005 安装的可选部分提供的,也可以从 Microsoft.com 免费下载。若要使用 SQL Server 的一个完整版本,必须安装和配置一个 ASP.NET 应用程序服务数据库,并将 SQL 个性化设置提供程序配置为连接到该数据库。有关详细信息,请参见为 SQL Server 创建和配置应用程序服务数据库。还可以创建和配置自定义提供程序来使用其他非 SQL 数据库或存储解决方案。有关详细信息和代码示例,请参见实现成员资格提供程序。
2,预配置的 SQL Server 提供程序
安装 ASP.NET 时,计算机配置文件和服务器的根 Web.config 文件中包括一些配置元素,这些元素为依赖于提供程序的每个 ASP.NET 功能指定 SQL Server 提供程序。默认情况下,这些提供程序被配置为连接到 SQL Server Express 的本地实例。如果您打算只将 SQL Server Express 用于在计算机配置文件的 connectionStrings 节中指定的默认位置,则无需对数据库执行任何手动设置。如果您需要使用在同一服务器上运行的标准版本的 SQL Server 配置数据库,或者您需要配置远程 SQL Server 计算机,则将需要使用此工具。
注意
Aspnet_regsql 工具不应与本地安装的、在用户实例模式下(即,连接字符串中包含 User Instance=true)运行的 SQL Server Express一起使用。
3, 使用 Aspnet_regsql.exe 安装数据库
ASP.NET 包括一个名为 Aspnet_regsql.exe 的工具,该工具用来安装 SQL Server 提供程序所使用的 SQL Server 数据库。Aspnet_regsql.ex 工具位于 Web 服务器上的 drive: \WINDOWS\Microsoft.NET\Framework\versionNumber 文件夹中。Aspnet_regsql.exe 既可用于创建 SQL Server 数据库,又可用于在现有数据库中添加或移除选项。
可以在不使用任何命令行参数的情况下运行 Aspnet_regsql.exe 来运行一个引导您完成如下过程的向导:为运行 SQL Server 的计算机指定连接信息,并为所有受支持的功能安装或移除数据库元素。还可以将 Aspnet_regsql.exe 作为命令行工具来运行,以便为各个功能指定要添加或移除的数据库元素。
若要运行 Aspnet_regsql.exe 向导,请运行 Aspnet_regsql.exe 并不带任何命令行参数,如下面的示例所示:
C:\WINDOWS\Microsoft.NET\Framework\\aspnet_regsql.exe
还可以将 Aspnet_regsql.exe 工具作为命令行实用工具来运行。例如,下面的命令为运行 SQL Server 的本地计算机上的成员资格和角色管理安装数据库元素:
aspnet_regsql.exe -E -S localhost -A mr
4。在web.config 加入
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Persist Security Info=True;User ID=sa;Password=sa"
providerName="System.Data.SqlClient" />
</connectionStrings>