Esecuzione di una DLL non thread-safe in un server http di Windows con multithreading
-
19-08-2019 - |
Domanda
Devo incapsulare un'applicazione VB6 come oggetto COM che verrà chiamato da IIS. Una delle DLL utilizzate dall'app VB6 NON è thread-safe.
Come posso assicurarmi che ogni volta che viene chiamato il mio oggetto COM non condivida la stessa dll con altre istanze di se stesso?
Ho letto da qualche parte che gli ex ActiveX eseguono ogni istanza in un processo diverso, sarebbe sufficiente?
Soluzione
Dovrai leggere i modelli di threading COM e apartment, testo del link . Mentre quello che stai facendo è possibile, la tua performance sarà orribile perché finirai per usare appartamenti a thread singolo, quindi tutte le richieste saranno serializzate. Dovresti davvero indagare sulla creazione di un processo separato per ciascuna di queste richieste.