Использование Ncqrs не удалось, когда я попытался сохранить второе поле - PullRequest
0 голосов
/ 14 октября 2010

Это ошибка: предварительное условие не выполнено .:один клиент, но если я попытался добавить второй, то это не удалось:

NcqrsEnvironment.Configure(config);

Я использую Ncqrs.

Ответы [ 3 ]

0 голосов
/ 20 февраля 2011

Как вы вызываете метод BootUp ()?

В примере документации на веб-сайте NCQRS BootUp () вызывается из статического конструктора, который гарантированно будет вызываться только один раз.

Однако, если вы не вызываете BootUp () из статического конструктора, имейте в виду, что значение IsConfigured не является потокобезопасным, и вы все равно можете столкнуться с исходным исключением, если два или более потоков пытаются выполнить BootUp () в параллельно, что очень вероятно в производственной среде.

Либо реализуйте проверку безопасности потока, либо запустите ее из статического компенсатора, чтобы быть на безопасной стороне.

0 голосов
/ 28 февраля 2011

Вы также можете использовать метод Ncqrs.Environment.DeConfigure().Это то, что я должен был сделать для веб-приложения, работающего под Nancy, поскольку Nancy в настоящее время создает новый контейнер IoC практически с каждым запросом.

Если я просто проверю IsConfigured, у него будет две отдельные конфигурации, которые ничего не будут знать одруг друга.

0 голосов
/ 14 октября 2010
 if (!NcqrsEnvironment.IsConfigured)
                NcqrsEnvironment.Configure(config);

Вы должны добавить строку, чтобы проверить, если она уже настроена, а если нет, то должна настроить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...