最近开始学习.NET 2.0了,才开始就被问题困扰了....
我很喜欢.NET 2.0中的WebPart这项功能,可是,我刚刚按教程上教的在页面上放了一个WebPartManager,然后运行,结果就报错了:
“/WebSite1”应用程序中的服务器错误。
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
SQLExpress 数据库文件自动创建错误: 连接字符串使用应用程序 App_Data 目录中的数据库位置指定了一个本地 SQL Server Express 实例。由于提供程序确定应用程序服务数据库不存在,因此试图自动创建该数据库。要成功检查应用程序服务数据库是否存在并自动创建应用程序服务数据库,必须 满足下列配置要求:
- 如果应用程序 App_Data 目录不存在,则 Web 服务器帐户必须具有对应用程序目录的读写访问权限。这是因为如果不存在 App_Data 目录,Web 服务器帐户将会自动创建它。
- 如 果应用程序 App_Data 目录已存在,则 Web 服务器帐户只要求对应用程序 App_Data 目录的读写访问权限。这是必要的,因为 Web 服务器帐户将尝试确认 SQL Server Express 数据库已在应用程序 App_Data 目录中。如果从 Web 服务器帐户撤消对 App_Data 目录的读访问权限,提供程序便无法正确地确定 SQL Server Express 数据库是否已存在。如果提供程序试图创建已存在的数据库的副本,就会出错。写访问权限是必需的,因为创建新数据库时需要使用 Web 服务器帐户凭据。
- 计算机上必须安装 SQL Server Express。
- Web 服务器帐户的进程标识必须具有本地用户配置文件。有关如何为计算机帐户和域帐户创建本地用户配置文件的详细信息,请参见自述文档。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 |
堆栈跟踪:
[SqlException (0x80131904): 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)] System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +173 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +199 System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup) +1069 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +606 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +193 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +219 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +27 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +49 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +89 System.Data.SqlClient.SqlConnection.Open() +160 System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +67[HttpException (0x80004005): 无法连接到 SQL Server 数据库。] System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +123 System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install) +89 System.Web.Management.SqlServices.Install(String database, String dbFileName, String connectionString) +26 System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString) +388
|
版本信息:Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
经过一番搜查,问题终于有了答案。
原来,WebPart使用个性化服务时需要在web.config文件里面配置一个连接字符串。
好了,解决方法如下:
第一种方法是禁用个性化服务,修改WebPartManager的属性:Personalization -> Enabled 为 False
如果需要使用个性化服务,就得使用下面这个办法:
1. 运行 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regsql.exe
按照提示安装数据库。
2. 在web.config文件的connectionStrings下加入一段连接字符串的配置:
<removename="LocalSqlServer"/>
<addname="LocalSqlServer"connectionString="DataSource=localhost;InitialCatalog=aspnetdb;PersistSecurityInfo=True;UserID=sa;Password="
providerName="System.Data.SqlClient"/>
<!--[SqlException]: 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)在 System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup)在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)在 System.Data.SqlClient.SqlConnection.Open()在 System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)[HttpException]: 无法连接到 SQL Server 数据库。在 System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)在 System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install)在 System.Web.Management.SqlServices.Install(String database, String dbFileName, String connectionString)在 System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString)[HttpException]: 无法连接到 SQL Server 数据库。在 System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString)在 System.Web.DataAccess.SqlConnectionHelper.EnsureSqlExpressDBFile(String connectionString)在 System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation)在 System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider.GetConnectionHolder()在 System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider.LoadPersonalizationBlobs(WebPartManager webPartManager, String path, String userName, Byte[]& sharedDataBlob, Byte[]& userDataBlob)在 System.Web.UI.WebControls.WebParts.PersonalizationProvider.LoadPersonalizationState(WebPartManager webPartManager, Boolean ignoreCurrentUser)在 System.Web.UI.WebControls.WebParts.WebPartPersonalization.Load()在 System.Web.UI.WebControls.WebParts.WebPartManager.OnInit(EventArgs e)在 System.Web.UI.Control.InitRecursive(Control namingContainer)在 System.Web.UI.Control.InitRecursive(Control namingContainer)在 System.Web.UI.Control.InitRecursive(Control namingContainer)在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)在 System.Web.UI.Page.ProcessRequest()在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)在 System.Web.UI.Page.ProcessRequest(HttpContext context)在 ASP.default_aspx.ProcessRequest(HttpContext context) 位置 c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/website1/aa045b8f/d53e0fd1/App_Web_nslpjam2.0.cs:行号 0在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)-->这段配置覆盖了默认的连接字符串,而使用自定义的。
总算,问题解决了。
分享到:
相关推荐
用WebPart实现的模块拖拽,并保存到数据库中。 数据库自己建就可以了,保存的字段用Image或者Ntext类型。 本资源实现模块的添加、删除,位置保存。 自己研究好了好久才实现的,给大家分享一下。
NULL 博文链接:https://7wolfs.iteye.com/blog/1152440
webpart教程 好东西 初学webpart的好帮手
里面告诉用户怎么使用webpart控件.
webpart代码 详细的webpart代码
sharepoint webpart sharepoint webpartsharepoint webpart
WebPart3.GIF
asp.net 2.0 webpart in actionasp.net 2.0 webpart in actionasp.net 2.0 webpart in action
(1)关闭webPart后重新打开webPart (2)webPart模式切换 (3)添加新的WebPart组件 供初学者使用,基本包含了webPart的使用
自定义webpart,编辑webpart风格,增加webpart功能
SharePoint WebPart开发教程实例
WebPart模板文件是VS2005的插件程序,可在vs2005的新建C#项目中添加WebPart模板
有关SharePoint WebPart的一些文档笔记有关SharePoint WebPart的一些文档笔记有关SharePoint WebPart的一些文档笔记
包含用户控件的最简单的webpart VS2005开发的moss2007中使用的webpart,在moss网站中使用是成功的。
本文描述了针对Microsoft Office SharePoint Server 2007的WebPart的开发环境的搭建。开发环境使用的操作系统为Windows 2003 SP1以上,并安装了Windows SharePoint Service 3.0。
sharepoint 2010 扩展webpart自定义属性边栏字段
webpart开发及于silverlight整合
用于sharepoint webpart 的开发,用此软件之后直接开发usercontrol即可。和国内的quickpart 差不多
webpart实例简易教程,适合初学者倒萨
测试 webpart 源代码测试 webpart 源代码测试 webpart 源代码测试 webpart 源代码