无效的对象名称'ASPState.dbo.ASPStateTempApplications' - 重命名ASPState数据库后的异常

时间:2010-07-17 12:37:44

标签: asp.net session-state sql-session-state

我使用命令(aspnet_regsql.exe -S -E -ssadd -sstype p)创建了新的会话数据库,并创建了名为ASPState的数据库。然后我将其重命名为E_ASPStateDB。我在sessionState连接字符串中配置了正确的DB名称。但它仍会引发异常无效的对象名称'ASPState.dbo.ASPStateTempApplications'

我需要做什么,以便它将使用新的数据库名称?

4 个答案:

答案 0 :(得分:12)

我在网站连接的数据库服务器上运行了它,它立即解决了。

USE [ASPState]
GO

DECLARE @return_value int

EXEC    @return_value = [dbo].[CreateTempTables]

SELECT  'Return Value' = @return_value

GO

答案 1 :(得分:3)

由于您重命名了DB,因此您必须重新生成ASPnet会话表。以下是解决方案。

To Remove, use following command: [open visual studion command prompt]

aspnet_regsql -ssremove -S [SERVER] -U [USER] -P [PWD] -d [DATABASE] -sstype c

Then add them again by following command

aspnet_regsql -ssadd -S [SERVER] -U [USER] -P [PWD] -d [DATABASE] -sstype c

答案 2 :(得分:0)

使用aspnet_regsql注册数据库名称后,您必须使用您注册的名称。事后没有必要更改名称。如果您真的想使用类似E_ASPStateDB的名称,为什么不首先删除ASPState的注册,然后使用名称E_ASPStateDB重新注册。它会让你的生活更轻松

答案 3 :(得分:0)

您必须修改存储过程,因为它们会使用数据库名称和架构来调用表,如下所示:

[ASPState] .dbo.ASPStateTempApplications

您必须将其更改为

[E_ASPStateDB] .dbo.ASPStateTempApplications