У меня есть следующий класс как часть приложения asp.net.Поведение статического объекта Asp.net
public sealed class SomeClass
{
private static string appId = Guid.NewGuid().ToString();
public static ReadSomethingFromDb(){}
public static WriteSomethingToDb(){}
}
В одном пуле приложений есть несколько экземпляров приложений, и все они имеют доступ к одной и той же базе данных. Я хочу, чтобы операции, выполняемые вышеуказанным классом, были однозначно привязаны к экземпляру, который его выполнял, следовательно, к использованию appId. Таким образом, добавление записи в базу данных, например, должно содержать имя, адрес и appId. Это было упрощено для обсуждения.
Предполагая, что у меня есть два экземпляра, запущенных на mysite.a и mysite.b, указанный класс генерирует два разных указателя.
Моя проблема заключается в том, что mysite.a иногда производит более одного указателя, что является неожиданным.
Спасибо заранее
Я понимаю это. Я на 99% уверен, что нет утилиты для пула приложений, перезагрузки сервера, веб-конфигурации. Это оставляет разные машины (что я не понимаю, что вы имеете в виду) и IIS (что я ничего не могу с этим поделать). Что касается вашего предложения, класс, который я опубликовал, является частью проекта, который включен как DLL в приложение asp.net, поэтому я думаю, что у меня нет доступа ни к одному из двух. если я ошибаюсь ... –
Под «разными машинами» я имею в виду - веб-ферму; несколько серверов, претендующих на роль одного. Но я ожидаю, что виновником здесь является IIS, требующий нового «AppDomain» - вы не можете многое сделать по этому поводу. –