2015-07-06 5 views
3

Я использую WatiN в консольном приложении. Я установил платформу для x86, и я добавил [STAThread] в свою главную. Я подтвердил, что приложение фактически работает в 32-битном режиме (который требуется WatiN).WatiN on AppHarbor: COMException, «Не удалось выполнить сервер»

WatiN прекрасно работает при тестировании на местном уровне, но происходит сбой при запуске на AppHarbor:

[COMException: Retrieving the COM class factory for component with CLSID {0002DF01-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).]

0007FFB8B2184B3 WatiN_Core!WatiN.Core.IE.CreateNewIEAndGoToUri(System.Uri, WatiN.Core.Interfaces.IDialogHandler, Boolean)+0x103

Как я могу получить WatiN работать на AppHarbor?

ответ

1

Чтобы иметь возможность запускать WatIn, ему необходимо иметь доступ (как администратор) к некоторым ресурсам. Когда вы запускаете COM-объект, он должен иметь возможность запросить реестр, чтобы узнать, является ли Internet Explorer объектом COM в этой системе и если он запускается. У меня нет непосредственного опыта работы с AppHarbor, но я уверен, что они не позволят вам запросить, какие серверы COM имеют свои машины, чтобы они не предоставили вам этот доступ.

Чтобы быть уверенным в этом, вы должны спросить их, можете ли вы получить доступ к COM-объектам запроса на своих машинах.

Когда вы запускаете его на своем локальном компьютере, который работает, потому что либо вы вошли в систему как администратор, либо запускаете процесс как администратор.

Надеюсь, это поможет.