2015-07-12 97 views
0

我正在使用Asp.Net Web窗体和Sql服务器上的一个项目。当我运行应用程序时,出现错误Unable to connect Sql Server Session Database,内部例外是Cannot open database ASPState requested by the login无法打开登录请求的数据库“ASPState”。登录失败。用户'xxxx'登录失败

我做了一些谷歌搜索来解决这个问题。我没有sa密码,所以我无法登录为sa为新创建的用户分配ASPState数据库的权限。

当我登录时,在Sql Server上看不到任何ASPState数据库。所以我想我可能需要在我的机器上运行aspnet reg exe。所以我试图运行aspnetreg_regsql.exe,但我得到了以下错误。

执行SQL文件 'InstallCommon.sql'期间发生错误。 SQL错误号是5170,而SqlException 消息是:无法创建文件'C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ aspnetdb.mdf',因为它已经存在 。更改文件路径或文件名,然后重试 操作。

CREATE DATABASE失败。列出的某些文件名不能被创建。检查相关的错误。

创建ASPNETDB数据库...

我完全空白的,现在要解决这个问题,我将非常感谢您对这个建议。这个问题持续在生产上发布。

回答

1

不要认为有一个简单的答案,你有权限,我认为发生了什么是数据库已被创建,但你是用户使用根本没有任何访问权限。

没有管理员凭据我不认为你将能够解决问题。

但是你可以解决它通过重新创建具有不同名称的数据库:

aspnet_regsql -d[YourNewDBName] -RestOfYourParamaters 

这应该让你重新运行创建脚本,但也不能保证你不会结束在新创建的数据库上有相同的问题。

+0

我尝试了你的解决方案,现在得到了这个错误。无法使用SQL Server,因为SQL Server上未安装ASP.NET 2.0版会话状态,或者ASP.NET无权运行dbo.TempGetVersion存储过程。如果尚未安装ASP.NET会话状态架构,请安装ASP.NET会话状态SQL Server版本2.0或更高版本。如果架构已安装,请将dbo.TempGetVersion存储过程的执行权限授予ASP.NET应用程序池标识或sqlConnectionString属性中指定的Sql Server用户。 – Gayatri

+0

我从命令提示符创建了新的数据库,然后正确安装aspnetdb。上次我试图从UI运行aspnet_regsql而不是通过命令。最后现在工作。谢谢你的帮助。 – Gayatri

0

您应该发出命令DROP DATABASE aspnetdb,然后重新运行脚本。

+0

我试图删除数据库,但查询没有成功运行。我收到错误'无法删除数据库'aspnetdb',因为它不存在或者您没有权限。' – Gayatri

0

'InstallCommon.sql'当然不是任何数据库。顾名思义,它必须是一个安装新数据库的脚本。运行脚本,然后链接生成的数据库

相关问题