ASP.NET: Пользователь не останется, вошел в систему больше 30 минут

Только для ссылки - перечислимые бинарные операции с помощью дополнительного метода.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;

namespace BinaryOpGenericTest
{
    [Flags]
    enum MyFlags
    {
        A = 1,
        B = 2,
        C = 4

    }

    static class EnumExtensions
    {
        private static Dictionary<Type, Delegate> m_operations = new Dictionary<Type, Delegate>();

        public static bool IsFlagSet<T>(this T firstOperand, T secondOperand) 
                                                  where T : struct
        {

            Type enumType = typeof(T);


            if (!enumType.IsEnum)
            {
                throw new InvalidOperationException("Enum type parameter required");
            }


            Delegate funcImplementorBase = null;
            m_operations.TryGetValue(enumType, out funcImplementorBase);

            Func<T, T, bool> funcImplementor = funcImplementorBase as Func<T, T, bool>;

            if (funcImplementor == null)
            {
                funcImplementor = buildFuncImplementor(secondOperand);
            }



            return funcImplementor(firstOperand, secondOperand);
        }


        private static Func<T, T, bool> buildFuncImplementor<T>(T val)
                                                            where T : struct
        {
            var first = Expression.Parameter(val.GetType(), "first");
            var second = Expression.Parameter(val.GetType(), "second");

            Expression convertSecondExpresion = Expression.Convert(second, typeof(int));
            var andOperator = Expression.Lambda<Func<T, T, bool>>(Expression.Equal(
                                                                                                       Expression.And(
                                                                                                            Expression.Convert(first, typeof(int)),
                                                                                                             convertSecondExpresion),
                                                                                                       convertSecondExpresion),
                                                                                             new[] { first, second });
            Func<T, T, bool> andOperatorFunc = andOperator.Compile();
            m_operations[typeof(T)] = andOperatorFunc;
            return andOperatorFunc;
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            MyFlags flag = MyFlags.A | MyFlags.B;

            Console.WriteLine(flag.IsFlagSet(MyFlags.A));            
            Console.WriteLine(EnumExtensions.IsFlagSet(flag, MyFlags.C));
            Console.ReadLine();
        }
    }
}
5
задан Jason 17 August 2009 в 20:50
поделиться

5 ответов

Ваш пул приложений может перезапускаться - либо в течение определенного периода времени, либо в зависимости от порогового значения для памяти или процессора. Если бы раньше все работало нормально и ничего не изменилось, я бы сначала исследовал это место.

3
ответ дан 14 December 2019 в 13:43
поделиться

Тайм-аут может быть вызван рядом причин. Этот блог предоставляет отличный обзор.

2
ответ дан 14 December 2019 в 13:43
поделиться

Вы можете использовать Fiddler, чтобы проверить дату истечения срока действия файла cookie, который возвращается со страницы входа.

1
ответ дан 14 December 2019 в 13:43
поделиться

Причиной такого поведения для меня обычно является тайм-аут простоя IIS.

0
ответ дан 14 December 2019 в 13:43
поделиться

Не забудьте использовать тайм-аут состояния сеанса .

-1
ответ дан 14 December 2019 в 13:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: