2009-06-10 2 views
9

Для моей компании я создал веб-службу ASP.NET, которая использует сторонний механизм prcoessing для авторизации транзакций по кредитным картам.HRESULT: 0x80010105 (RPC_E_SERVERFAULT) вопрос

Веб-сервис размещен на отдельном сервере приложений и подключается к серверу обработки платежей через объект ActiveX (расширение .ocx). В последнее время он генерирует исключение HRESULT: 0x80010105 (RPC_E_SERVERFAULT), когда я пытаюсь установить соединение с приложением с помощью проверки «IsAvaiable».

Кто-нибудь рекомендует хорошее место для изучения этой проблемы?

(Я знаю, связаться с поставщиком будет первый вариант, но я хочу, чтобы мои «уток в ряд», прежде чем обратиться в службу технической поддержки)

ответ

2

У меня была та же ошибка (RPC_E_SERVERFAULT) с помощью ActiveX объекты в веб-сервисах. Всякий раз, когда объект ActiveX разбился, IIS выбрасывает эту ошибку, которая маскирует причину, по которой объект разбился (для нас он обычно сбой при загрузке недопустимого файла, который ему нужно обработать и вернуть значения).

Вы проверили системные журналы и т. Д., Чтобы узнать, зарегистрировал ли ваш элемент управления ActiveX какую-либо ошибку?

Если вы не видите ничего очевидного, я бы посоветовал обратиться в службу технической поддержки, чтобы выяснить, какой способ является фактической ошибкой, и если он регистрирует свои ошибки где угодно.

+1

Я проверил журнал событий сервера веб-службы и не увидел ошибок, связанных с ошибкой RPC_E_SERVERFAULT. У меня нет доступа к серверу приложений, возможно, я могу найти что-то там. –

0

Вы можете включить adplus, чтобы захватить дамп памяти каждый раз, когда вы получаете исключение. Это можно использовать, чтобы помочь отладить проблему.

+0

Откуда бы дамп памяти появился: IIS или объект ActiveX? –

+0

Дампы памяти поступают из приложения, а не из отдельных модулей, поэтому IIS –

+0

На самом деле он не создает .DMP-файл, когда возникает исключение. Есть ли другой тип расширения файла, который я должен искать, это будет считаться дампом памяти. –

2

Michael, ваш сторонний элемент управления Activex, вероятно, неправильно управляет памятью. Я предполагаю, что это переписывание части памяти, когда этого не должно быть. Узнайте у своего стороннего провайдера, есть ли у них исправление.

1

Я знаю, что это переполнение стека, и здесь должен быть ответ на программирование, но вы не упоминаете никаких обновлений или изменений программного обеспечения на неисправной машине. Если программных изменений не было, скорее всего, это проблема с оборудованием. Сбой ОЗУ, сбои CPU, сбои оборудования. Если вы можете отключить систему и проверить оборудование, вы, вероятно, обнаружите, что диск или модуль памяти не работают (возможно, сетевой адаптер). Вероятно, это первый шаг, который должен был предпринять поставщик, но если вы сделаете это самостоятельно, вы можете сделать это на своих условиях и можете сэкономить плату за обслуживание в течение нескольких часов своего времени.

+0

Это нонсенс – Elmue

+0

@Elmue У вас есть что-нибудь конструктивное для добавления? Проверка аппаратного обеспечения часто является хорошим шагом, и я стал свидетелем плохого бара, вызванного множеством ошибок, включая проблемы с проверкой криптографической подписи. Если crypto не работает, RPC может выйти из строя из-за этого.Вопрос также спросил о совете при обращении к поставщику, обычное оборудование получит один из нескольких неряшливых методов, используемых агентами телефонных звонков, чтобы сбросить вызов. – Sqeaky

+1

Я видел несколько ошибок RPC_E_SERVERFAULT. Это никогда не было аппаратной причиной. Эти ошибки просто означают, что сбой COM-сервера. Причина в основном связана с ошибками программирования, такими как переполнение буфера или чтение нулевых указателей или неправильная передача ошибок. Если у вас возникнут проблемы с оперативной памятью, вы увидите сбои в разных приложениях (не только на одном сервере) даже до появления bluescreens. Невозможно, чтобы проблема с программным обеспечением вызывала сбои только в одном приложении. – Elmue

0

Также может означать, что объект COM разбился. Если бы это произошло с макросом в Excel, который разбил Excel. Попробуйте повторно запустить приложение, представленное объектом COM (в моем случае, добавление Excel), и посмотреть, сбой или возникновение некоторой ошибки.

Смежные вопросы