Ваш триггер вставки будет работать однажды за всем оператором вставки. Поэтому важно использовать inserted
временная таблица для наблюдения то, что было на самом деле вставлено, и не только выбирает новую единственную запись или что-то как этот.
я просто протестировал вставку и триггер обновления и действительно, их считает частью вставки SQL-сервер. процесс не закончится, пока триггер не заканчивается.
Включить диагностику службы. Это должно дать вам довольно хорошее представление о том, получает ли служба сообщение и где она генерирует исключение.
Это ошибка, которая иногда не имеет ничего общего с безопасностью.
Я бы порекомендовал вам сначала попытаться заставить ее работать без защиты, затем только с защитой сообщений, а затем с транспортом и, наконец, с TransportWithMessageCredential.
Также, если вы запускаете консольное приложение и приложение службы Windows на одном компьютере, обязательно остановите консольное приложение перед запуском службы Windows, чтобы избежать конфликта портов
Вы используете специальный валидатор пользователя / имени - имеет ли служба Windows доступ к этому файлу (ам)?
Под какой учетной записью вы запускаете службу NT?
Работает ли это при отключенной безопасности ?? (просто чтобы увидеть)
Марк
Обновление - я изменил customUserNamePasswordValidatorType с Custom на Windows. Это отлично работало как в консоли, так и в службе Windows. Я могу только предположить, что что-то в Custom Validator было причиной проблемы.
Пользовательский валидатор использовал специальный раздел конфигурации в App.config для проверки идентификатора пользователя и пароля. Я бы подумал, что это сработает из службы Windows.
Спасибо всем, кто отправил ответ.