C# Многие экземпляры объекта Singleton

У меня проблема с шаблоном Синглтона.

Это действительно странно, но похоже, что есть два или три экземпляра моего singleton Pattern. Мой сайт,это сайт действий, с таймерами, и я обрабатываю эти таймеры и цены с моим объектом Singleton.

Что происходит, так это то, что некоторые люди видят некоторые цены, а другие люди видят другие цены всегда, когда они находятся в разных сетях.

Например, в моем офисе мои люди видят какой-то аукцион по 0,56 цента, все видят то же самое, но в другой сети, например, в моем доме, я вижу 0,55 цента, а также таймеры имеют разные значения.

Сказав это, я протестировал свой Singleton, сгенерировав идентификатор GUID и занося его в свой файл журнала. Вот некоторый код

public class Singleton
{
    private static Singleton instance;
    private static System.Threading.Mutex mutex;

    System.Guid token;

    private Singleton() { 
        token = System.Guid.NewGuid();
        Logger.Log("New singleton Instance" + token.toString());
    }
    static Singleton()
    {
        instance = new Singleton();
        mutex = new System.Threading.Mutex();
    }

    public static Singleton Acquire()
    {
        mutex.WaitOne();
        return instance;
    }

    // Each call to Acquire() requires a call to Release()
    public static void Release()
    {
        mutex.ReleaseMutex();
    }

    public void SomeAction()
    {
       Logger.Log(token.toString() + " - SomeAction");
    }
}

В этом коде я генерирую токен на конструкторе, и регистрирую создание нового Singleton, затем... в методе SomeAction я регистрировал, кто выполняет это действие.

После этого мы сделали пару тестов и загрузили файл журнала.

К моему удивлению, я вижу только один «New Singleton Instance bla», который является правильным. но затем, многие вызовы метода SomeAction с различными идентификаторами GUID,что странно.

Я проверил, что объект создается только в статическом конструкторе, а также проверил, что нигде нет ручного создания.

Для получения дополнительной информации это происходит только на моем производственном сервере, который является хостингом goDaddy. Я спросил, есть ли более одного пула приложений для моего веб-сайта, и они сказали, что есть только один пул приложений.

10
задан Ram 8 June 2015 в 19:40
поделиться