6

Tôi có ứng dụng web ASP.NET MVC 4. Chạy cục bộ, nó hoạt động tốt, nhưng trên máy chủ lưu trữ web (sử dụng chia sẻ lưu trữ), người dùng đã đăng nhập thường bị đăng xuất bằng cách được chuyển hướng trở lại trang chủ. Trong hầu hết các trường hợp, người dùng bị đăng xuất sau khi chỉ thực hiện một vài thao tác. Máy chủ web cho rằng ứng dụng của tôi có thể đang sử dụng quá nhiều bộ nhớ nhưng tôi đã sử dụng chương trình để cấu hình mức sử dụng bộ nhớ và tôi xác nhận rằng nó không sử dụng quá nhiều bộ nhớ - thực tế ứng dụng dường như sử dụng phần của bộ nhớ được cấp phát trên máy chủ web.Thành viên ASP.NET MVC - người dùng bị đăng xuất thường xuyên - không biết tại sao

Dưới đây là phương pháp đăng nhập được sử dụng:

public static Boolean Login(string Username, string Password, bool persistCookie = false) 
    { 

     bool success = Membership.ValidateUser(Username, Password); 
     if (success) 
     { 
      FormsAuthentication.SetAuthCookie(Username, persistCookie); 
     } 
     return success; 
    } 

Trong máy chủ web của tôi, thời gian chờ hình thức xác thực được thiết lập để 60 phút, do đó không nên là một vấn đề, phải không?

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" timeout="60" /> 
</authentication> 

và giá trị timeout trạng thái phiên của tôi cũng được thiết lập để 60 phút:

<sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="60"> 

Dựa trên câu trả lời here, tôi đã thêm dòng này cũng có, mà dường như không để giải quyết vấn đề này:

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps"></machineKey> 

Bất kỳ ý tưởng nào về vấn đề có thể là gì và tôi có thể làm gì để giải quyết vấn đề?

Trả lời

1

Phiên của bạn không hết thời gian chờ. IIS đang gặp sự cố. Vì bạn đang sử dụng trong các phiên bộ nhớ, mỗi lần IIS gặp sự cố, các phiên của bạn đã biến mất và người dùng bị đăng xuất. Bạn nên kiểm tra các khung nhìn sự kiện của máy chủ và xem chi tiết các lỗi để tìm ra lỗi là gì.

0

tôi đặt thời gian chờ tôi tới 2880 trong thời gian chờ xác thực cho web.config và tôi cũng đặt sessionState trước khi đóng cửa system.web

<sessionState timeout="1440"></sessionState> 

Điều này sẽ giữ phiên hoạt động trong 24 giờ.

+2

Tôi có cả hai thiết lập là 60 hiện tại, mà tôi hiểu là 60 phút, mà phải là quá đủ thời gian. Tôi tăng giá trị thời gian chờ lên một số lớn hơn để xem liệu điều đó có tạo ra bất kỳ sự khác biệt nào hay không ... nhưng không. –

+0

Bao lâu trước khi nó hết giờ, hoặc nó xuất hiện đến từ một trang hoặc bộ điều khiển cụ thể? –

+0

Tôi muốn nói rằng phiên người dùng vẫn hợp lệ không quá 1 hoặc 2 phút ... đôi khi nhiều hơn, đôi khi ít hơn. Nó không có vẻ quan trọng mà bộ điều khiển đang được gọi. –

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