Domanda

Ho un vecchio sito Web .net 2005 che ha alcune pagine ASP e ho problemi con i riferimenti agli oggetti durante l'accesso alla dll .net.L'attività di manutenzione mi è stata affidata e lo sviluppatore originale non si trova da nessuna parte :( Ho già iniziato con .Net, quindi non sono davvero padrone della gestione di questo tipo di problema dll infernale.

Sulla freccia in basso è dove sto corteggiando il "(0x80131500) Il riferimento all'oggetto non è impostato su un'istanza di un oggetto."

Set objCommon = Server.CreateObject("Wrapper.CommonFunctions")
  Dim machineBuilding
--->>>  If objCommon.IsMachineAccount(strLogin, machineBuilding) Then

Ho già seguito questi passaggi:

  1. regasm /tbl /codebase mycomdll.dll
  2. gacutil /i mycomdll.dll
  3. copiare mycomdll.dll nella directory System32
  4. Dalla console eseguire issreset
  5. Se la tua dll è stata creata nel framework 2.0, crea un file "dllhost.exe.config" nella directory system32 e inserisci questo:

<?xml version="1.0"?> <configuration> <startup> <supportedRuntime version="v2.0.50727"/> <requiredRuntime version="v2.0.50727"/> </startup> </configuration>

6.- Riavviare IIS con il comando issreset

e anche questi:

  1. In Proprietà del progetto a.In \application\assembly information io.Selezionare "Rendi l'assieme com-visibile".B.In fase di costruzione io.Seleziona "Registrati per Com Interop"
  2. NON firmarlo.
  3. Assicurati che IUSR disponga delle autorizzazioni complete per il file.
  4. Riavviare IIS tramite iisreset per svuotare eventuali cache.

E ancora non riesce a eseguire l'applicazione.Altre idee su cosa controllare o fare?Grazie!

Emiro

È stato utile?

Soluzione 3

Il problema è stato l'applicazione è alla ricerca di un file che contiene il nome host del database.

Altri suggerimenti

Il valore HRESULT è molto rilevante.Tieni presente che il "codice struttura" in 0x80131500, 13 indica che l'origine dell'errore è il codice gestito.Hai già ricevuto la traduzione amichevole per 1500.

In altre parole, il codice gestito ha generato un'eccezione e non è stato gestito.Ovviamente non è raro, il codice gestito genera molto comunemente eccezioni.Soprattutto NullReferenceException, quello che hai attivato.Il debug di questo non è così semplice poiché si esegue codice gestito in un processo non gestito.Non sono sicuro di quale sia la procedura corretta per IIS, normalmente viene eseguita con Strumenti + Collega a processo.Il modo migliore per affrontare questo problema è isolare il codice, scrivere alcuni test unitari.

A parte questo, la variabile MachineBuilding mi sembra un buon candidato per NRE.Non l'hai inizializzato.

A proposito:non ha nulla a che fare con la registrazione.Ciò produce un tipo di errore molto diverso.

Ho avuto una soluzione simile al tuo, ma è andato lungo. Ho ancora un po 'di informazioni su di esso comunque e ho notato che la mia affermazione regasm è diverso.

regasm mycomdll.dll /tlb :mycomdll.tlb

Il tuo riferimenti tbl invece di TLB -? Forse è il problema

Ho anche che si dovrebbe controllare due volte i valori dei parametri e quindi chiamare il metodo con quei valori dei parametri tramite un client rapido-and-dirty .NET per vedere se il metodo genera un errore.

Voglio anche confermare che il mio codice ASP classico abbinato tuo ...

set obj = server.CreateObject("mycomdll.myclass")
...
call obj.method(false)
...
myvar = obj.method2(param1, param2, param3)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top