您的位置:首页 > 数据库

WebPart应用程序中服务器错误的解决办法

2007-07-13 17:15 204 查看
很多人在最初使用WebPart的时候, 会遇到如下错误:

首先说明, 这个错误不是因为SQL Server版本的不同导致的, Express跟Enterprise或者是其他SQL版本不会导致这个问题...

下面是具体错误提示:

"/WebSite2"应用程序中的服务器错误。 

      在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错) 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

      SQLExpress 数据库文件自动创建错误: 

      连接字符串使用应用程序 App_Data 目录中的数据库位置指定了一个本地 SQL Server Express 实例。由于提供程序确定应用程序服务数据库不存在,因此试图自动创建该数据库。要成功检查应用程序服务数据库是否存在并自动创建应用程序服务数据库,必须满足下列配置要求:

      1. 如果应用程序 App_Data 目录不存在,则 Web 服务器帐户必须具有对应用程序目录的读写访问权限。这是因为如果不存在 App_Data 目录,Web 服务器帐户将会自动创建它。 

      2. 如果应用程序 App_Data 目录已存在,则 Web 服务器帐户只要求对应用程序 App_Data 目录的读写访问权限。这是必要的,因为 Web 服务器帐户将尝试确认 SQL Server Express 数据库已在应用程序 App_Data 目录中。如果从 Web 服务器帐户撤消对 App_Data 目录的读访问权限,提供程序便无法正确地确定 SQL Server Express 数据库是否已存在。如果提供程序试图创建已存在的数据库的副本,就会出错。写访问权限是必需的,因为创建新数据库时需要使用 Web 服务器帐户凭据。 

      3. 计算机上必须安装 SQL Server Express。 

      4. Web 服务器帐户的进程标识必须具有本地用户配置文件。有关如何为计算机帐户和域帐户创建本地用户配置文件的详细信息,请参见自述文档。

综合了一下各位达人的看法, 弄出两种解决的办法:

第一种:

1. 首先运行C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regsql.exe

   在这里进行一系列设置之后,就会在数据库中创建一个aspnetdb。  
 
2. 在C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/CONFIG/web.config中的<configuration>下添加
   
<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> 

      这上面是第一种解决办法, 大部分都能解决问题, 但是也有出现各种问题的, 比如像是什么无法登陆, 跟SQL建立连接失败等问题, 研究了一下, 我想可能是因为上面的连接语句的问题, 所以, 如果第一种方法还不能解决问题, 那就试试第二种吧.

1. 首先运行C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regsql.exe

   在这里进行一系列设置之后,就会在数据库中创建一个aspnetdb。  
 
2. 在C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/CONFIG/web.config中的<configuration>下添加
   
  <connectionStrings>   
     <remove name="LocalSqlServer" />   
     <add name="LocalSqlServer" connectionString="Persist Security Info=False;Integrated Security=SSPI;Database=aspnetdb;Server=LocalHost" providerName="System.Data.SqlClient" />   
  </connectionStrings> 

      可以发现, 这两种方法的区别就是<configuration>中的连接语句不一样, 如果看了我博客里面的一篇关于连接语句的文章的话, 就会感觉到这个连接语句是比较不错的, 反正我感觉是如此, 所以在出现第一种方法不能解决问题后, 我就想到了更改连接语句试试的想法, 然后就可以了. 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐