ITPUB论坛 » Web开发 » ASP.NET与AJAX » "个人网站初学者工具包" 怎样和SqlServer2005一起用?


2008-7-3 19:02 smartpig
"个人网站初学者工具包" 怎样和SqlServer2005一起用?

安装VS 2005的时候没有安装 Sql Express,然后由安装了SqlServer2005开发版。

但是创建"个人网站初学者工具包"之后,运行的时候出现这个错误!!

------------------------------------------------------------------------------------------------------------------------------------
“/WebSiteDemo”应用程序中的服务器错误。
--------------------------------------------------------------------------------

此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭。
说明: 执行当前 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 不支持用户实例登录标志。该连接将关闭。]
  System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +800131
  System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186


------------------------------------------------------------------------------------------------------------------------------------


1。
察看Web.config文件,修改

<add name="Personal" connectionString="Data Source=.我计算机的名字;Integrated Security=True;User Instance=True;AttachDBFilename= &brvbar;DataDirectory &brvbar;Personal.mdf" providerName="System.Data.SqlClient"/>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=.我计算机的名字;Integrated Security=True;User Instance=True;AttachDBFilename= &brvbar;DataDirectory &brvbar;aspnetdb.mdf"/>

但是仍然不行,还是提示场面的错误,应该就是连接字符串的问题,因为我debug发现到了第一次 connection.Open()的时候就crash了。


2。
想把Personal.mdf这个数据库直接导到我的默认实例里面,也没有成功,说是没有log文件,各位大虾有和好的解决办法?

2008-7-3 19:04 dotnetworker
呵呵,跟我前两天遇到了一样的问题,我也是初学,自己想了些解决办法,有哪不对的还请各位指教
1.在SQL Server 2005下新建 Personal 数据库,然后在该数据库下执行初学者工具包的App_Data文件夹下的personal-add.sql,建立数据库结构。
2.把Web.Config下的 <connectionStrings>改为如下:
<connectionStrings>
<add name="Personal" connectionString="Data Source=.;database=Personal;Integrated Security=True;Trusted_Connection=True"  providerName="System.Data.SqlClient"/>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=.SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename= ¦DataDirectory ¦aspnetdb.mdf"/>
</connectionStrings>
3.安装SQL Server Express,因为似乎要使用ASP.NET配置功能,只能在SQL Server Express下,也就是说要用aspnetdb.mdf来管理网站账户,就只能用SQL Server Express,只有SQL Server Express支持连接单独的SQL数据库文件。

页: [1]


Powered by ITPUB论坛