[rystal e VStudio 2008] Migrazione pc di sviluppo: l'è dura!

venerdì 19 dicembre 2008 - 14.48

Pokino Profilo | Junior Member

Scusate ma sto annaspando..
in questi giorni sto migrando l'ambiente (e non tiratemi in ballo le VM mi raccomando ) su un nuovo desktop..
prima avevo installato:
- IIS 7
- SQL Server 2005 compreso l'engine
- VStudio 2005 + SP
- Crystal Reports 2008

e tutto andava bene, ma IIS l'avevo installato prima di tutto il resto..

Ora ho voluto aggiornare le applicazioni e cercare di sgravare il pc il più possibile, quindi ho installato:
- SQL Server 2008 senza engine
- VStudio 2008 SP1
- Crystal Reports 2008

e speravo di riuscire a sviluppare senza IIS.. quando però ho provato l'applicazione di reportistica (.net 2.0) tutto bene a parte che il report non si vede neanche a piangere e compare un messaggio in corrispondenza del reportviewer : accesso al database non riuscito..

in un primo caso ho pensato che fosse perchè non avevo riportato la cartella aspnet_client con il js di Crystal, l'ho messa nella VisualStudio2008\WebSites senza risultato e NON voglio metterla dentro alla cartella del sito per principio.. nel vecchio pc tutto andava alla grande ma.. avevo IIS.. devo per forza installarlo?

Ho fatto l'installazione postuma di IIS7 e nulla è cambiato..

qualche idea? Grazie 1000

freeteo Profilo | Guru

Ciao,
il messaggio "accesso al database non riuscito." non è da attribuire ad un errore di IIS, almeno non direttamente.
Il fatto sembra piuttosto che sia dovuto ai percorsi relativi del db (o cmq i parametri di connessione) sono cambiati, e non li ritrova più.
Verifica come si connetteva prima al database, e vedi di riportare uguale il tutto nella nuova situazione (penso a web.config o altri file che hai usato per la connessione)

Se hai un'applicazione asp.net, io tipicamente evito questi problemi di config, passandoli da codice, o tramite ado.net e il metodo "SetDataSource" se mi è comodo averli in memoria, oppure impostando (sempre da codice) i parametri di connessione al report "LogonInfo".
Un esempio di codice lo trovi qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=21962

Se vuoi capirci di più vedendo il codice in dettaglio puoi guardare quanto detto qui:
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx (trovi un download a destra)
anche se fatto per win32, il codice è praticamente identico per asp.net, tanto l'oggetto è sempre un "ReportDocument", quello che cambia in asp.net è che il viewer renderizza il tutto in HTML, e il codice dovresti metterlo nel Load della pagina.

Altra alternativa è usare un "CrystalReportSource", oggetto equivalente dell'ObjectDataSource di asp.net....vedi tu come ti trovi meglio, ma intanto verifica bene i parametri di connessione del report.

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Pokino Profilo | Junior Member

il fatto è che ho ricopiato i sorgenti paro paro senza modificare nulla ed uso il codice seguente per impostare il login del report sul server:

private void SetDBLogonForReport() { ConnectionInfo conn = new ConnectionInfo(); conn.DatabaseName = "nomeDB"; conn.UserID = "utente"; conn.Password = "pwd"; TableLogOnInfos info = repViewer.LogOnInfo; foreach (TableLogOnInfo table in info) { table.ConnectionInfo = conn; } }

ho anche provato ad aggiungere la riga conn.DatabaseName ma nulla è cambiato, mentre prima funzionava

ora viene fuori una mascherina con il msg [b]Il report desiderato richiede ulteriori informazioni[/b] e una form dove inserire i dati di login, ma qualsiasi cosa imposti nn va e sul db nn vedo msg di errore

freeteo Profilo | Guru

Ciao,
avevi percaso costruito il report con sql? perchè potrebbe essere un problema di proprietà "location" (http://www.dotnethell.it/forum/messages.aspx?ThreadID=5303)

Magari verificala con un punto di interruzione, se ha ancora qualcosa di quello che avevi quando hai costruito il report...

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Pokino Profilo | Junior Member

nn sono sicuro di cosa intendi per 'costruito il report con sql'. Il report è stato costruito con CrystalReports2008..

se vado a verificare il valore di myReport.Database.Tables[0].Location trovo il nome della query di origine dei dati, senza accenno al db..

aggiornamento 1: ho riscritto il codice della proc. di login secondo i dettami MS e tuoi ma nulla è cambiato

private void SetDBLogonForReport() { ConnectionInfo conn = new ConnectionInfo(); conn.Type = ConnectionInfoType.SQL; conn.ServerName = "server"; conn.DatabaseName = "db"; conn.UserID = "user"; conn.Password = "pwd"; TableLogOnInfo LInfo = new TableLogOnInfo(); foreach (CrystalDecisions.CrystalReports.Engine.Table table in myReport.Database.Tables) { LInfo = table.LogOnInfo; LInfo.ConnectionInfo = conn; table.ApplyLogOnInfo(LInfo); } }

continua a dirmi "Accesso non riuscito"

potrebbe dipendere dalla versione delle librerie? mi sembra strano..

aggiornamento 2: ho provato a pubblicare il sito sul server effettivo dove girano i sorgenti 'vecchi' et voilà! i report sono di nuovo visibili..

?? perchè nn mi funziona in locale?

aggiornamento 3: ho provato a pubblicare su iis del mio pc e al caricamento del report compare il msg:

Si è verificato un errore durante il tentativo di caricare il runtime Crystal Reports. È possibile che le autorizzazioni di codice del Registro di sistema di Crystal Reports siano insufficienti o che il runtime Crystal Reports non sia installato correttamente. Installare il file ridistribuibile Crystal Reports appropriato (CRRedist*.msi) contenente la versione corretta del runtime Crystal Reports (x86, x64 o Itanium) richiesta. Per ulteriori informazioni, visitare il sito Web http://www.businessobjects.com/support.

Pokino Profilo | Junior Member

1. alla fine sono giunto alla conclusione che il problema dovrebbe essere imputabile al s.o. : sono passato alla versione a 64 bit di Vista e probabilmente i problemi sono dovuti alla mancanza di supporto da parte del runtime di Crystal report 2008 a questa versione. Mi accontento per ora di usare una connessione desktop remoto al vecchio pc per sviluppare questo sito

----

2. ora però devo migrare anche il server di produzione e non riesco proprio ad uscirne:
a. il server di test (win2003) con runtime 2008 SP0 = OK
b. il pc di sviluppo Vista32 con runtime 2008 SP! = OK
c. (di cui sopra) il pc si sviluppo Vista64 = NO
d. il server di produzione win2003 con 2008 SP1 = NO

continua a dire accesso al db non riuscito ma sto usando gli STESSI sorgenti dappertutto, con le stesse procedure di autenticazione e stessi login!!!

olivierod Profilo | Newbie

Ciao.
Hai risolto il problema con il runtime? Ho lo stesso tipo di errore dopo aver preparato una macchina Vista a 64 bit..
Grazie Oliviero

Pokino Profilo | Junior Member

no purtroppo, sto continuando con un pc ausiliario di sviluppo quando devo usare crystal report..

la migrazione del server però è fortunatamente riuscita, il problema era che sul server è necessario installare i provider dati che i report usano..
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