Registrazione dll .net

venerdì 22 ottobre 2004 - 15.29

abate Profilo | Newbie

Ciao a tutti, ho provato prima a risolvere il problema da solo, ma alla fine mi sono arreso.
Lavoro con sistema operativo windows 200 server ed ho creato una dll in vb .net, la mia prima, tutto funzione ma ho problemi quando provo a registrarla su un computer con stesso sistema operativo, ma con istallato solo il runtime di .net.
Come devo procedere?
Ho bisogno di aiuto, grazie

amelix Profilo | Expert

Che errore ti da?

abate Profilo | Newbie

Ciao e grazie per l'nteressameto,
ho visto dalla guida in linea che la dll va semplicemente trascinata nella cartella assembly di winnt, ma mi dice che ladll non ha un nome sicuro.
Grazie

amelix Profilo | Expert

Mmmm....
Stai cercando di fare una DLL x COM+?

amelix Profilo | Expert

Hai inserito la riga nel file Assembly.cs?
[assembly: AssemlyKeyFileAttribute("kiave.snk")]

per creare la chiave:
sn -k kiave.snk

abate Profilo | Newbie

Scusami, ho creato una dll dll in .net che utilizza gli arcobject per fare un'intersezione tra due o più poligoni e ritorna l'area di intersezione. Pensavo che la dll andasse registrata, perchè la richiamo da una pagina asp con il createObject, se non la registro come faccio a richiamarla? Premetto che sul computer dove l'ho compilata funziona correttamente, è quando provo ad utilizzarla su l'altro dove ho solo istallato il runtime.

abate Profilo | Newbie

No, come devo fare?

amelix Profilo | Expert

Basterebbe copiarla nella cartella BIN del progetto o in quelle comuni di .NET.
Ma non potevi usare la clausola "using classe.da.utilizzare" e usare new classe.costruttore()?

In questo modo la DLL viene messa automagicamente nel BIN corretto.

abate Profilo | Newbie

Scusatemi, volevo ringraziarvi per l'aiuto, sono riuscito a renderla sicura, ora mi da errore quando uso il createObject
set intersect = server.createObject("IntersectGeometry.Intersect").
come devo fare?

Grazie

amelix Profilo | Expert

VB.NET.... Non lo conosco benissimo ma ci provo:

//Aggiungi nei References e all'inizio del file e nei References
Using IntersectGeometry;

Dim intersect = New IntersectGeometry.Intersect()

Facendo cosi' hai a disposizione anche tutte le utility dell'intellisense

abate Profilo | Newbie

Grazie, ma va bene lo stesso in una pagina asp, è da li che richiamo la dll

amelix Profilo | Expert

In asp "normale"....
Si. Devi usare il Create Object...
Faccio un piccolo riassunto:
- La DLL e in VB.NET
- La pagina e' in asp
- Sul server hai registrato la DLL

La pagina ASP riesce ad "aprire" la dll con i diritti iusr_ETC.ETC?
Con precisione che errore ti da?

abate Profilo | Newbie

Scusami ma l'errore è strano, perchè non sembra legato alla dll, mi dice che non puo' visualizzare la pagina specificata, ma se commento il set intersect=........ funziona.

amelix Profilo | Expert

Quello e' un problema di Internet Explorer.
Vai su [Strumenti-->Opzioni Internet-->Avanzate-->Abilita messaggi di errore HTTP brevi (disabilitalo)]

abate Profilo | Newbie

Ciao, mi da errore interno del server http 500,
ho settato il browser come mi hai detto

amelix Profilo | Expert

Dovrebbe esserci anche un messaggio + esteso con la linea dell'errore e la "motivazione"

abate Profilo | Newbie

Il messagio è solo questo
non so cosa fare

amelix Profilo | Expert

Hai aggiunto la DLL nella cache globale degli assembly?

Per creare l'assembly e aggiungerlo nella cache globale degli assembly:
gacutil –i ServicedCom.dll

Prova anche:
regsvcs ServicedCom.dll

abate Profilo | Newbie

Grazie a tutti ho risolto, avevo registrato la dll in assembly, ma non i tipi. Ora funziona
Grazie per la collaborazione è un forum che funziona molto bene

Namelessx Profilo | Newbie

Scusate come posso dare un "nome sicuro" alla mia DLL - COM scritta in Visual c# per poterla registrare tramite GacUtil.exe?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5