Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.58.247.231] |
|
Сообщ.
#1
,
|
|
|
Добрый вечер коллеги,
Есть ASP.Net приложение, написанное на C#, которое обращается к unmanaged dll, содержащей Direct3D9 вызовы (так вот ...). При отладке в VS2010 c Cassini сервером приложение работает как надо, в IIS7 работать не хочет: Интерфейс IDirect3D9 создается, но ни один вызов его функций не проходит. Например, GetAdapterCount метод всегда возвращает 0. Та же unmanaged dll, содержащая OpenGL и WinGDI вызовы, работает нормально и рисует то, что положено под IIS, а Direct3d9 - нет. В чем может быть проблема? Может, IIS блокирует COM вызовы? Можно ли с этим бороться настройками, пермишинами и т.д. С уважением, Vlad2K |
Сообщ.
#2
,
|
|
|
IIS работает как сервис, под одним из сервисных аккаунтов, возможно поэтому есть проблемы с доступом к DirectX. У него просто может не быть доступа к десктопу, соответсвенно не твозможности создания окна и т.д. Во-вторых, на какой системе тестируем? Cassini и IIS на одной машине?
|
Сообщ.
#3
,
|
|
|
Windows 7 64, Cassini и IIS ecnfyjdktys на одной машине.
Добавлено ecnfyjdktys = установлены Добавлено Окно создается, OpenGL работает |
Сообщ.
#4
,
|
|
|
Цитата Vlad2K @ Окно создается, OpenGL работает речь про IIS? |
Сообщ.
#5
,
|
|
|
OpenGl рисует в BackBuffer скрытого окна (обычное Windows окно), передает содержимое буфера в Managed код, а тот уже рисует в канвас. Это работает.
Direct3D создает для рисования поверхность (RenderTarget), рисует туда и передает в Managed код данные из этого буфера. Но до создания поверхности дело не доходит, потому что любой вызов IDirect3D, в том числе GetAdapterCount (для которого вообще ничего не требуется) не проходит. |
Сообщ.
#6
,
|
|
|
Цитата Vlad2K @ Это работает. из-под IIS? |
Сообщ.
#7
,
|
|
|
Да
|