2013-03-13 28 views
11

"Trang web của tôi là SỐNG. Và sự cố này liên quan đến việc định cấu hình thời gian chờ của phiên trên máy chủ LIVE và không phải trong máy chủ cục bộ".Chế độ trạng thái phiên asp.net "SQLServer"

Tôi gặp sự cố với phiên hết hạn quá sớm. chỉ trong 2-5 phút. Tôi đã cố gắng rất nhiều thứ và cuối cùng quyết định để lưu trữ phiên làm việc trong "SQL Server" chế độ

trong tập tin web.config của tôi tôi đã sau mã hóa:

<sessionState mode="SQLServer" cookieless="false" timeout="45" 
sqlConnectionString="data source=xxx.xx.xx.xxx;uid=xxxxxxx;pwd=xxxxxxxx"/> 

và tôi có tất cả các bảng cần thiết trong ASPState bảng trên máy chủ. Bạn có thể nhìn thấy nó từ hình ảnh dưới đây.

enter image description here

Nhưng tôi khi tôi chạy ứng dụng của tôi, ném nó lỗi dưới đây:

"Không thể sử dụng SQL Server bởi vì một trong hai ASP.NET phiên bản 2.0 phiên Nhà nước không được cài đặt trên máy chủ SQL, hoặc ASP.NET không có quyền chạy thủ tục lưu trữ dbo.TempGetVersion Nếu lược đồ ASP.NET Session State chưa được cài đặt, hãy cài đặt phiên bản ASP.NET Session State SQL Server 2.0 hoặc cao hơn. , vui lòng cấp quyền thực thi trên thủ tục lưu trữ dbo.TempGetVersion cho bản sắc ứng dụng ASP.NET hoặc người dùng Sql Server được chỉ định trong sqlConnectionString thuộc tính. "

Ảnh của lỗi:

enter image description here

Tôi không thể hiểu được vấn đề chính xác và làm thế nào tôi có thể giải quyết nó. Bất kỳ trợ giúp sẽ được đánh giá cao.

Cảm ơn bạn

+1

Bạn đã thử cấp quyền vai trò DbExecuter cho id người dùng của bạn trong chuỗi kết nối của bạn – DSharper

+1

không có tôi chưa thử bất cứ điều gì như thế. – jackerj

+0

@jackerj, bạn đã viết "và tôi có tất cả các bảng cần thiết trong bảng ASPState trên máy chủ". Đầu tiên, có vẻ như bạn có nghĩa là "ASPState db" khi bạn viết "ASPState table". Tôi có đúng không?Một câu hỏi khác là: làm thế nào bạn kiểm tra xem những bảng mà bạn đã tìm thấy trong db là chính xác những gì nên có? –

Trả lời

4

Mở "Lập trình" trong cây của bạn và kiểm tra trước nếu dbo.TempGetVersion tồn tại. Có lẽ bạn chưa cài đặt đúng lược đồ.

+0

thực sự tôi đã cài đặt nó trên máy chủ cục bộ và xuất cơ sở dữ liệu trên máy chủ. – jackerj

+0

Tôi không biết bất kỳ cách nào để cài đặt trực tiếp nó trên cơ sở dữ liệu máy chủ – jackerj

+0

đã làm những gì bạn nói. istalled nó một lần nữa, bây giờ nhận được lỗi sau "Tên đối tượng không hợp lệ 'tempdb.dbo.ASPStateTempApplications'" bạn có thể cho tôi biết bất cứ điều gì về nó? – jackerj

2

Có lẽ bạn có một thẻ xấu trong web.config của bạn

Một ví dụ chính xác nên được:

<sessionState 
allowCustomSqlDatabase="true" 
mode="SQLServer" 
sqlConnectionString="data source=localhost;initial catalog=YourAspStateDatabase;user id=yourLogin;password=yourpassword" cookieless="false" timeout="30"/> 
25

Để có được điều này để làm việc cho tôi, tôi chạy lệnh với các tùy chọn sau.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -S . -E -ssadd -sstype p 

tùy chọn ("Thêm hỗ trợ cho trạng thái phiên chế độ SQL Server") là nguyên nhân khiến nó thiết lập đúng quy trình được lưu trữ. Xem này link để hoàn thành danh sách tùy chọn.

+0

Điều này làm việc cho tôi trên một máy mới được cài đặt. Bạn có thể chạy lệnh này từ dấu nhắc lệnh VS – WhiskerBiscuit

0

tôi đã bị mắc kẹt với điều này và không ai trong số các câu trả lời làm việc cho tôi, chỉ trong trường hợp người khác có vấn đề này, đây là điều mà giải quyết vấn đề của tôi, tôi chạy trong cmd:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -C "Data Source=.\SQL2012;Integrated Security=True" -ssadd 

Chỉ trong trường hợp một người khác bị mắc kẹt trong tình huống tương tự như tôi.

Các vấn đề liên quan