2013-03-07 12 views
9

Mam aplikację formularzy systemu Windows, która ma elementy sterujące OCx strony trzeciej. Następujące polecenie służy do tworzenia obiektu w czasie wykonywania.ASP Brak takiego błędu obsługiwanego interfejsu podczas tworzenia obiektu

myObject = myApplication.CreateObject("ML.MFinder", True) 

to działa poprawnie, a progID również jest poprawny. Problem jest, gdy robi to samo w projekcie asp gdzie się następujący błąd:

System.Runtime.InteropServices.COMException: No such interface supported 

at ML.MApplicationClass.CreateObject(String ProgID, Boolean Allocate)

Dziwne bo innych obiektów OCX działa prawidłowo również na ASP projektu. Używam IIS 5.1, Windows XP Pro SP3 i framework 3.5. Również zarejestrowałem ocx ręcznie.

+0

czy dodałeś referencję? –

+0

tak, oczywiście. Już dodane. – Jaume

+0

Jakie modele gwintowania są obsługiwane przez ocx? – tcarvin

Odpowiedz

2

Czy ta kontrola ocx wymaga określonego dostępu do odczytu w systemie plików? Jeśli tak, musisz nadać uprawnienia na poziomie systemu plików: IUSR_XXXXX = CZYTAJ + WYKONAJ.

Należy również sprawdzić, czy brakuje jakiejkolwiek zależności za pomocą narzędzia Dependency Walker.

Czy otrzymujesz jakiś identyfikator klasy w wyjątku? Jeśli tak, sprawdź, czy identyfikator klasy znajduje się w rejestrze.

+0

nie id klasy w wyjątku. Już ustawiłem uprawnienia do konta IUSR_, ale bez powodzenia. Jednak dziękuję za wskazówki, nie wiedziałem o tym. Jeśli uprawnienia są prawidłowe, jak postępować? "brak takiego błędu interfejsu" jest nadal wyświetlany. – Jaume

+0

@Jaume: Czy możesz udostępnić więcej kodu, jak procedura, w której tworzysz ten obiekt? Również używasz asp lub asp.net? –

+0

dzięki za wskazówki, stworzyłem nowy wątek po wywołaniu metody webservice. Następnie wewnątrz tego wątku nie zgłoszono żadnych błędów. Dziękuję Ci. – Jaume

2

W ramach IIS nie masz takich samych reguł dostępu do zewnętrznych plików lub bibliotek dll. Myślę, że w przypadku plików OCX usługi IIS mogą być jeszcze bardziej restrykcyjne.

Nie sądzę, że problemem jest odniesienie lub coś w tym stylu. Jak już powiedziałeś, już zarejestrowałeś OCX, ale czy ten OCX ma również pewne zależności? Muszą być również odpowiednio zarejestrowani.