Действие, определенное правилом, не было вызвано.
Диагностика
Сбой вызова правила триггера очереди сообщений мог произойти по нескольким причинам. Возможные причины данной ошибки:
Недопустимое условие или параметр действия правила.
Неправильно зарегистрирован объект модели COM, вызываемый правилом.
Не удалось найти исполняемый файл, указанный в правиле, или он не работает.
Для выполнения этих процедур необходимо быть членом группы Администраторы либо обладать соответствующими делегированными полномочиями.
Недопустимое условие или параметр действия правила
Чтобы определить действительность условия или параметра действия правила, выполните следующие действия.
Откройте оснастку "Управление компьютером". Чтобы открыть оснастку "Управление компьютером", нажмите кнопку "Пуск". В поле поиска введите compmgmt.msc и нажмите клавишу ВВОД.
В дереве консоли последовательно разверните "Службы и приложения", "Очередь сообщений" и "Триггеры".
В пункте "Триггеры очереди сообщений" нажмите "Триггеры".
Чтобы просмотреть свойства правила, которое необходимо выполнить, нажмите на него правой кнопкой.
Перейдите на вкладку "Общие". Убедитесь, что правило указывает на желаемую очередь и выбран правильный тип обработки.
Перейдите на вкладку "Присоединенные правила" и убедитесь, что присоединены предполагаемые правила.
Для отображения списка доступных правил в пункте "Триггеры" нажмите "Правила".
Правой кнопкой мыши щелкните на правилах, которые необходимо выполнить с триггером, и просмотрите их свойства.
На вкладке "Условия правил" подтвердите, что условия правил соответствуют желаемым.
На вкладке "Действие правила" подтвердите, что правило указывает на желаемое действие.
Если определено, что проблемой является условие или параметр правила, см. раздел под названием "Настройка правил или триггеров".
Вызванный правилом объект COM зарегистрирован неверно
Чтобы определить, правильно ли зарегистрирован объект COM, выполните следующие действия.
Откройте оснастку "Службы компонентов". Чтобы открыть оснастку "Службы", нажмите кнопку "Пуск", а затем щелкните "Выполнить". В открывшемся поле введите comexp.msc и нажмите клавишу ВВОД.
В дереве консоли последовательно раскройте элементы "Службы компонентов", "Компьютеры", "Мой компьютер" и нажмите "Приложения COM+".
Подтвердите, что ваш компонент COM присутствует и зарегистрирован.
Если вы определите, что объекты COM не зарегистрированы должным образом, см. раздел под названием "Регистрация компонентов COM+".
Не удалось найти исполняемый файл, указанный в правиле, или он нерабочий
Чтобы определить, что исполняемый файл существует и работает, выполните следующие действия.
Откройте проводник и перейдите к указанному в событии исполняемому файлу. Убедитесь, что файл существует и работает должным образом.
Определите, что правило должным образом ссылается на исполняемый файл. Откройте оснастку "Управление компьютером". Чтобы открыть оснастку "Управление компьютером", нажмите кнопку "Пуск". В поле поиска введите comexp.msc и нажмите клавишу ВВОД.
В дереве консоли последовательно разверните узлы "Управление компьютером", "Службы и приложения", "Очередь сообщений", "Триггеры", "Правила", а затем нажмите "Правила".
Правой кнопкой мыши нажмите на указанном в сообщении об ошибке правиле и нажмите "Свойства".
На вкладке "Действие правила" в пункте "Вызов исполняемого файла" убедитесь, что файл, перечисленный в пути к исполняемому файлу, существует и ему предшествует полный путь. Например, вместо "MyApp.exe" должно быть указано "c:\MyDirectory\MyApp.exe".
Если определено, что возникла проблема с исполняемым файлом, см. раздел под названием "Удаление и повторное создание правила".
Дополнительные сведения о создании правил триггера см. в разделе "Создание триггеров и присоединение правил к ним" ( http://go.microsoft.com/fwlink/?LinkId=104059).
Настройка правил или триггеров
Условия правил или триггеры необходимо настроить должным образом. Если желаемое правило или параметры триггеров неизвестны, может возникнуть необходимость связаться с разработчиком решения.
Для выполнения данной процедуры необходимо быть членом группы Администраторы либо обладать соответствующими делегированными полномочиями.
Чтобы проверить или изменить правила или триггеры, выполните следующие действия.
Откройте оснастку "Управление компьютером". Чтобы открыть оснастку "Управление компьютером", нажмите кнопку "Пуск". В поле поиска введите compmgmt.msc и нажмите клавишу ВВОД.
Последовательно разверните "Службы и приложения", "Очередь сообщений", а затем "Триггеры".
В пункте "Триггеры очереди сообщений" нажмите "Триггеры".
Правой кнопкой мыши нажмите на правиле, которое необходимо выполнить, и нажмите "Свойства".
Перейдите на вкладку "Общие". Убедитесь, что правило указывает на желаемую очередь и выбран правильный тип обработки.
Перейдите на вкладку "Присоединенные правила" и убедитесь, что присоединены предполагаемые правила.
Для отображения списка доступных правил в пункте "Триггеры" нажмите "Правила".
Правой кнопкой мыши щелкните на правилах, которые необходимо выполнить с триггером, и просмотрите их свойства.
На вкладке "Условия правил" подтвердите, что условия правил соответствуют желаемым.
На вкладке "Действие правила" подтвердите, что правило указывает на желаемое действие.
Для каждого правила повторите шаги с 7 по 10.
Регистрация объекта COM+
Вызванный правилом объект COM+ зарегистрирован неверно. Чтобы снова зарегистрировать объект, можно воспользоваться служебной программой командной строки regsvr32.exe. Подробные сведения об использовании regsvr32 см. в статье 249873 базы знаний Майкрософт ( http://go.microsoft.com/fwlink/?LinkId=107513).
Для выполнения данной процедуры необходимо быть членом группы Администраторы либо обладать соответствующими делегированными полномочиями.
Чтобы зарегистрировать объект COM+, выполните следующие действия.
Запустите regsvr32.exe. Чтобы запустить regsvr32.exe, нажмите кнопку "Пуск". В поле поиска введите cmd и нажмите клавишу ВВОД.
В командной строке введите regsvr32 <your COM+ component.dll> и нажмите клавишу ВВОД.
Удаление и повторное создание правила
Не удалось найти исполняемый файл, указанный в правиле, или он не работает. Для решения этой проблемы попробуйте удалить и повторно создать указанное правило.
Для выполнения данной процедуры необходимо быть членом группы Администраторы либо обладать соответствующими делегированными полномочиями.
Чтобы удалить и создать указанное правило, выполните следующие действия.
Откройте оснастку "Управление компьютером". Чтобы открыть оснастку "Управление компьютером", нажмите кнопку "Пуск". В поле поиска введите compmgmt.msc и нажмите клавишу ВВОД.
В дереве консоли последовательно разверните узлы "Управление компьютером", "Службы и приложения", "Очередь сообщений", "Триггеры", "Правила", а затем нажмите "Правила".
Выберете правило, указанное в сообщении об ошибке, и дважды щелкните на нем.
Убедитесь, что в правиле указан полный путь для исполняемого файла.
Дополнительные сведения о создании правил триггера см. в разделе "Создание триггеров и присоединение правил к ним" ( http://go.microsoft.com/fwlink/?LinkId=104059).
Дополнительные сведения см. в событии с ИД 2209 ( http://technet.microsoft.com/en-us/library/dd337501(WS.10).aspx)
Target | Microsoft.MSMQ.6.3.Triggers | ||
Category | AvailabilityHealth | ||
Enabled | False | ||
Event_ID | 2209 | ||
Event Source | $Target/Host/Property[Type="Microsoft.MSMQ.6.3.ServerRole"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.MSMQ.6.3.Rule.Alert.Event2209" Enabled="false" Target="Microsoft.MSMQ.6.3.Triggers" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>AvailabilityHealth</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">2209</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Host/Property[Type="Microsoft.MSMQ.6.3.ServerRole"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSMQ.6.3.Rule.Alert.Event2209.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>