Dopo aver esaminato un numero di articoli diversi e non aver trovato nulla di particolarmente conclusivo che mi accompagni passo passo attraverso il processo, sono venuto in cerca di aiuto .Creazione di una libreria di interoperabilità COM per ASP Classic utilizzando 4.0 framework e Visual Studio 2010
Lo scenario
Un mio cliente è abile solo nello sviluppo per ASP Classic. Di recente hanno acquisito un account per un sito originariamente scritto in ASP.NET. Stanno trasformando il sito in qualcosa che possono attivamente mantenere, ma il sito in origine includeva un gestore di immagini che prendeva dinamicamente i dati relativi ai livelli dell'acqua e genera un'immagine contenente una rappresentazione grafica di tali dati. L'esigenza è di sviluppare una libreria di interoperabilità COM che possa essere registrata sul server e chiamata con CreateObject per generare lo stesso array di byte dell'immagine per l'output usando Response.BinaryWrite. La libreria di interoperabilità COM deve essere registrata sul sito remoto su un server Windows 2000 e non è possibile formulare alcuna ipotesi sul fatto che abbiano accesso a regasm/gacutil per eseguire tale attività.
la difficoltà
Ho costruito la libreria di classi per la creazione di un progetto dilibreria di classi in Visual Studio 2010, scegliendo "COM Class" dal modello, e inserendo il mio codice per generare una classe con un singolo metodo pubblico per restituire un array di byte quando viene fornito un intero (beh, enumeratore, ma tutti uguali). Sfortunatamente, anche sul mio computer di sviluppo dopo aver costruito la libreria e registrato (regasm) e messo in cache l'assembly (gacutil), non posso effettuare una chiamata tramite Classic ASP per creare un'istanza dell'oggetto, ricevendo invece un "ActiveX componente non può creare oggetto "errore. E, naturalmente, sul sito del server, il file DLL non può essere registrato, la risposta è "Modulo richiesto non trovato".
Risorse Ho usato
Ho già dato un'occhiata attraverso i seguenti articoli e non hanno alzato le risposte di cui ho bisogno:
- (passi di base) Walkthrough: Creating COM Objects with Visual Basic
- Build and Deploy a .NET COM Assembly
- .NET COM+ Interop Component with Classic ASP
Quello che ho bisogno
Essenzialmente quello che mi serve è un po 'di tenersi per mano su una specie di passo per passo di quello che sta andando a prendere per soddisfare le esigenze e creare correttamente un modulo COM+ interoperabilità in Visual Studio 2010. La creazione dell'oggetto stesso di classe non è molto difficile.
Tuttavia, nessuno degli articoli che ho esaminato discute davvero le opzioni di progetto o le procedure di compilazione con Visual Studio 2010 o .NET 4.0 Framework, né nessuno di loro ha discusso seriamente se ci sono considerazioni particolari per la distribuzione su sistemi meno recenti come Windows Server 2000 e la registrazione effettiva della libreria su un sistema con solo, per esempio, regsvr32 a portata di mano.
Per tutti coloro che vengono dietro: Su facendo un po 'di più compiti a casa, ho voluto notare qui che ho anche bisogno di indirizzare la mia libreria al NET Framework 2.0 come quello è l'ultimo quadro supportato da Windows Server 2000. – lsuarez