我使用命令(aspnet_regsql.exe -S -E -ssadd -sstype p)创建了新的会话数据库,并创建了名为 ASPState 的数据库。然后我将它重命名为 E_ASPStateDB。我在 sessionState 连接字符串中配置了正确的数据库名称。但它仍然抛出异常Invalid object name 'ASPState.dbo.ASPStateTempApplications'
我需要做什么,以便它使用新的数据库名称?
我使用命令(aspnet_regsql.exe -S -E -ssadd -sstype p)创建了新的会话数据库,并创建了名为 ASPState 的数据库。然后我将它重命名为 E_ASPStateDB。我在 sessionState 连接字符串中配置了正确的数据库名称。但它仍然抛出异常Invalid object name 'ASPState.dbo.ASPStateTempApplications'
我需要做什么,以便它使用新的数据库名称?
我在站点连接到的数据库服务器上运行了它,它立即解决了它。
USE [ASPState]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[CreateTempTables]
SELECT 'Return Value' = @return_value
GO
由于您重命名了数据库,您将不得不重新生成 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
您必须修改存储过程,因为它们调用具有数据库名称和架构的表,如下所示:
[ASPState].dbo.ASPStateTempApplications
你必须改变它
[E_ASPStateDB].dbo.ASPStateTempApplications
一旦您使用 aspnet_regsql 注册了数据库名称,您就必须使用您注册时使用的名称。以后改名真的没有意义。如果你真的要使用像E_ASPStateDB这样的名字,为什么不先删除ASPState的注册,然后用名字E_ASPStateDB重新注册呢。它会让你的生活更轻松