Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.03.2006, 16:46
|
|||
|---|---|---|---|
|
|||
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed. |
|||
|
#18+
Использую ADOMD.NET 8.0 с AS2000. Делаю ExecuteXmlReader(). Летит вот такой екзепшн. Почему он летит - загадка. Если делать то же самое с AS2005 - все классно работает. Поиск в гугле результатов не дал - вопрос подымается, но ответа не нахожу. Уважаемые господа знатоки, подскажите пожалуйста, в чем может быть дело? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.03.2006, 20:32
|
|||
|---|---|---|---|
|
|||
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed. |
|||
|
#18+
В качестве теста сделал такое: установил Win2000 Server + SP4 на VMWare. Туда поставил .NET 1.1 и ADOMD.NET 8.0, скопировал на виртуальную машину свою прогу. На чистой виртуальной машине вылетает тот же самый екзепшн. Самое странное в этом то, что а) если проходится дебаггером по коду - все работает классно, никаких проблем. проблемы только в рантайме. то есть, найти в чем же проблема невозможно. б) проблема возникает не постоянно, а в 80% запросов. Иногда запуск ExecuteXmlReader() успешно срабатывает. в) если написать тестовую консольную апликацию, которая делает все то же самое - в ней все работает. Что ее отличает от нашей апликации где вылазит глюк - это то, что используется Windows Forms, ADO.NET, библиотеки DevExpress, и пр. Очень сомневаюсь, что что-то из этого имеет какое либо отношение к взаимодействию с COM-сервером из msadomdx.dll и глюкам QueryInterface Результат абсолютно одинаковый вне зависимости от того, использую ли я родной adomdclient, или же тот, который я дизассемблировал. Когдато уважаемый г-н backfire говорил, что коннектится к AS2000 из-под ADOMD.NET - это "нехороший" способ. Я ему не поверил. Но вот теперь чем дальше, тем больше начинаю ему верить, ибо уже второй день пропал зря... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.03.2006, 23:26
|
|||
|---|---|---|---|
|
|||
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed. |
|||
|
#18+
Нашел еще одну важную деталь. Registry Monitor показывает, что апликация пробует достучатся к ключу HKCU\Interface\{08549D4C-E2F3-4631-8D63-E7A048F43E4C}, который в реестре отсутствует (это как раз и есть GUID для IXASC). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.03.2006, 09:58
|
|||
|---|---|---|---|
|
|||
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed. |
|||
|
#18+
А Вы, случайно, не создаете Connection объект на одном потоке (thread), а потом передаете его в другой поток для вызова ExecuteXXX? Отличие console приложения от WinForms - это выполнение пользовательского интерфейса в Single Thread Apartment потоке. Любой другой поток будет использовать другой apartment. Если да, то не делайте этого. Для каждого потока открывайте свое соединение (Connection). Для AS2005 вы можете передавать Connection между потоками, но только один поток может выполнять запрос, и нет никакой синхронизации (locks). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.03.2006, 10:15
|
|||
|---|---|---|---|
|
|||
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed. |
|||
|
#18+
Andriy7777А Вы, случайно, не создаете Connection объект на одном потоке (thread), а потом передаете его в другой поток для вызова ExecuteXXX? Отличие console приложения от WinForms - это выполнение пользовательского интерфейса в Single Thread Apartment потоке. Любой другой поток будет использовать другой apartment. Если да, то не делайте этого. Для каждого потока открывайте свое соединение (Connection). Для AS2005 вы можете передавать Connection между потоками, но только один поток может выполнять запрос, и нет никакой синхронизации (locks). Single Thread Apartment или нет явно определяется аттрибутом и ничем другим. Locks есть, если какой то поток послал запрос на сервер, то соединение залочено, пока не будет прочитан ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.03.2006, 15:01
|
|||
|---|---|---|---|
|
|||
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed. |
|||
|
#18+
Andriy7777А Вы, случайно, не создаете Connection объект на одном потоке (thread), а потом передаете его в другой поток для вызова ExecuteXXX? Именно так и есть. Я это уже установил вчера в 3-й ночи. Коллега день назад реализовал функционал для слежения за статусом закачки данных-результатов MDX запроса, ну а там многопоточность, + коннекшн-пул, в котором коннект к AS2000 (и соответсвтенно COM XASC object) был создан в другом потоке. Отсюда ноги и растут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=49&tablet=1&tid=1870353]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
92ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 408ms |

| 0 / 0 |
