Używam wielowątkowej usługi Windows, która musi wywołać dll VB6. Nie ma dokumentacji na temat tej biblioteki dll VB6, a ten starszy system obsługuje bardzo krytyczny proces biznesowy.Jak możemy pracować z biblioteką dll VB6 wywoływaną z aplikacji usługi okien wielowątkowych C#?
Po raz pierwszy (wątek 1º) ten plik dll działa dobrze. Ponieważ inne wątki wymagają dostępu, zaczynają dostarczać błędne wyniki.
Czytałem jeden faceci mówiąc:.
„Wystarczy być ostrożnym z jednej strony, jeśli używasz VB6 Twój model gwintowania będzie trzeba zmienić, aby wspierać apartamenty jeśli używasz wielowątkowe usługę VB. obsługuje tylko kilka jednowątkowych apartamentów, ale .NET działa w pełni swobodnie z gwintem normalnie.) Wątek wywołujący bibliotekę DLL VB6 musi być zgodny z biblioteką DLL. "
Inny facet z zespołu wpadł mi na pomysł, aby umieścić ten plik ddl w oddzielnej domenie aplikacji. Ale nie jestem pewien.
Jak możemy pracować z biblioteką dll VB6 wywoływaną przez aplikację usługi wielowątkowego C#?
Aby dać ostateczną odpowiedź, potrzebujemy więcej informacji: czy działa pod COM + czy nie, w pierwszym przypadku wykonuje in-process lub out-process? Jak zainstalować go w systemie: przez regsvr32 lub inny sposób? –
Dzięki chłopaki, dowiedziałem się, jaki był problem. Ta biblioteka nie powinna działać z niczym innym niż VB 6. Zawiera błąd. Nie akceptuje angielskich ustawień regionalnych na serwerze, musieliśmy zmienić język na portugalski; język klienta. Do tej pory używam wzorca singleton i wzorca proxy, aby pracować z tym starszym komponentem i teraz ładnie działa. –