Ừm, nếu bạn đã sử dụng cài đặt tiêu chuẩn để bật trạng thái phiên ASP.Net trong tempdb, thì hệ thống phải tạo một proc được lưu trữ (ASPState_Startup
) như sau trong cơ sở dữ liệu chính. Proc được lưu trữ này được định cấu hình để chạy tự động khi khởi động SQL Server:
USE master
GO
DECLARE @sstype nvarchar(128)
SET @sstype = N'sstype_temp'
IF UPPER(@sstype) = 'SSTYPE_TEMP' BEGIN
DECLARE @cmd nchar(4000)
SET @cmd = N'
/* Create the startup procedure */
CREATE PROCEDURE dbo.ASPState_Startup
AS
EXECUTE ASPState.dbo.CreateTempTables
RETURN 0'
EXEC(@cmd)
EXECUTE sp_procoption @ProcName='dbo.ASPState_Startup', @OptionName='startup', @OptionValue='true'
END
Vì vậy, các bảng tạm thời nên được tạo lại bằng mọi cách, trừ khi có điều gì đó đã được thay đổi kể từ khi cài đặt.
Nếu các quyền bổ sung được yêu cầu, tôi muốn mở rộng CreateTempTables
hiện có thủ tục trong ASPState
.
Nếu điều này không hoạt động chính xác, bạn có thể thử sử dụng aspnet_regsql
lệnh (tìm thấy trong %Windir%\Microsoft.Net\Framework\<framework version
- để loại bỏ sau đó thêm lại hỗ trợ trạng thái phiên vào máy chủ. Bạn muốn sử dụng -ssremove
sau đó -ssadd
, nhưng tôi khuyên bạn nên chuyển /?
trước tiên để xem tất cả các tùy chọn hiện hành.