Newsgroup: it.comp.lang.delphi
Titolo: Pubblicazione sito asp .net su aruba

Ciao a tutti, ho creato una semplicissima applicazione in asp .net 
(delphi 2006) che si collega ad una tabella di un database access. In 
locale tutto funziona alla perfezione, ho provato a portare tutto sul 
mio spazio aruba, copiando la dll nella cartella cgi-bin (ho provato 
anche a creare una cartella bin e copiare il file li), il file del 
database nell'apposita cartella e il file .aspx nella root del sito. 
Provando ad accedervi ottengo un generico "Runtime Error", poi c'è 
specificato che per "vedere" l'errore devo mettere il file Web.Config 
con il tag customerrors impostato a off. Ho provato anche questo manon 
riesco a farmi specificare di che errore si tratta. Vi riporto in 
dettaglio l'errore
Runtime Error
Description: An application error occurred on the server. The current 
custom error settings for this application prevent the details of the 
application error from being viewed remotely (for security reasons). It 
could, however, be viewed by browsers running on the local server machine.
Details: To enable the details of this specific error message to be 
viewable on remote machines, please create a <customErrors> tag within a 
"web.config" configuration file located in the root directory of the 
current web application. This <customErrors> tag should then have its 
"mode" attribute set to "Off".
<!-- Web.Config Configuration File -->
<configuration>
     <system.web>
         <customErrors mode="Off"/>
     </system.web>
</configuration>
Notes: The current error page you are seeing can be replaced by a custom 
error page by modifying the "defaultRedirect" attribute of the 
application's <customErrors> configuration tag to point to a custom 
error page URL.
<!-- Web.Config Configuration File -->
<configuration>
     <system.web>
         <customErrors mode="RemoteOnly" 
defaultRedirect="mycustompage.htm"/>
     </system.web>
</configuration>
Qualcuno ha qualche idea?
grazie Rob
PS: in locale ho riprodotto alla perfezione il sito online, stesso 
percorso assoluto del dominio...

premesso che di sviluppo web so meno di niente, cosi a naso direi:
1) accertati che il db access (bleah!) non sia readonly
2) Prova in locale a impostare path sbagliati e vedi cosa ottieni.
3) dal msg si legge che, per ragioni di sicurezza, le info dettagliate 
non vengono mostrate. Ergo, aggiungi dei try..except e se possibile fai 
in modo che gli errori siano scritti in qualcosa tipo un txt o inviati 
per email, che so...
A.

 con il tag customerrors impostato a off. [...]
Non hai aggiornato correttamente il tag come indicato nel messaggio di 
errore, oppure non hai memorizzato nuovamente il file "Web.config" sul 
server.
Segui scrupolosamente le istruzioni contenute nel messaggio.
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)
     Non hai la possibilità di scaricare Turbo Delphi Explorer?
     Te lo spedisco io!! [
http://www.marco.breveglieri.name/?p=48
]

 .......
ecc..
Ciao
facci sapere come va a finire, grazie
C.

 
In effetti avevo sbagliato ad aggiornare il tag correttamente. Ora 
riesco a vedere l'errore che riporto qua sotto.
Parser Error
Description: An error occurred during the parsing of a resource required 
to service this request. Please review the following specific parse 
error details and modify your source file appropriately.
Parser Error Message: Could not load file or assembly 'Borland.Data.Web, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' or 
one of its dependencies. The system cannot find the file specified.
Source Error:
Line 1:  <%@ Page language="c#" Debug="true" 
Codebehind="risultatiteam.pas" AutoEventWireup="false" 
Inherits="risultatiteam.TRisultatiTeam" %>
Line 2:  <%@ Register TagPrefix="borland" Namespace="Borland.Data.Web" 
Assembly="Borland.Data.Web, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=91d62ebb5b0d1b1b" %>
Line 3:  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Line 4:
In pratica non riesce a caricare la libreria borland.data.web, questo 
sta a significare che devo fare l'upload di altri file?
grazie

 sta a significare che devo fare l'upload di altri file?
Sì, devi fare l'upload nella cartella "bin" delle librerie che sono 
elencate nei riferimenti della tua applicazione Web, visibili nel nodo 
"References" dalla finestra del Project Manager, salvo laddove sia 
possibile includere il codice specifico nella DLL abilitando l'opzione 
"Link Units" nell'Object Inspector quando il singolo assembly dei 
riferimenti è selezionato (possibile solo in caso di possesso di file 
.PAS o .DCUIL, non ricordo se è il caso dei *dbWeb Controls* forniti da 
Borland).


 
Ciao Marco, grazie per l'aiuto. Ho fatto l'upload di tutte le dll 
utilizzate dalla mia applicazione. Ora ottengo un'altro errore questa 
volta di permessi....
Security Exception
Description: The application attempted to perform an operation not 
allowed by the security policy.  To grant this application the required 
permission please contact your system administrator or change the 
application's trust level in the configuration file.
Exception Details: System.Security.SecurityException: That assembly does 
not allow partially trusted callers.
Source Error:
[No relevant source lines]
Source File: d:\temp\root\9ea7d453\11946b13\App_Web_i2x0zkmd.0.cs    Line: 0
Stack Trace:
[SecurityException: That assembly does not allow partially trusted callers.]
    risultatiteam.TRisultatiTeam.InitializeComponent() in 
G:\Lavoro\PesOnline\wwwPesItaliaIt\risultatiteam.pas:929
    risultatiteam.TRisultatiTeam.OnInit(EventArgs e) in 
G:\Lavoro\PesOnline\wwwPesItaliaIt\risultatiteam.pas:942
    System.Web.UI.Control.InitRecursive(Control namingContainer) +321
    System.Web.UI.Page.ProcessRequestMain(Boolean 
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6953
    System.Web.UI.Page.ProcessRequest(Boolean 
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +154
    System.Web.UI.Page.ProcessRequest() +86
    System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +18
    System.Web.UI.Page.ProcessRequest(HttpContext context) +49
    ASP.risultatiteam_aspx.ProcessRequest(HttpContext context) in 
d:\temp\root\9ea7d453\11946b13\App_Web_i2x0zkmd.0.cs:0
 
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
+154
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& 
completedSynchronously) +64
grazie
Roberto

 volta di permessi.... [...]
Se non ricordo male, hai detto di aver usato i componenti *BDP* (Borland 
Data Provider) per l'accesso ai dati, giusto?
A quale database cerchi di collegarti?
In caso contrario, quali sono le classi che hai adottato?


 
Si ho usato dei componenti BDP per l'accesso ad un database access. In 
locale funziona tutto. Ho provato a ricreare lo stesso percorso fisico 
del sito. Non sono molto pratico con questo tipo di programmazione, è la 
prima volta che faccio una cosa del genere ed è tutto fai da te quindi 
sicuramente c'è qualcosa che sbaglio.
grazie ancora.

 sicuramente c'è qualcosa che sbaglio.
Purtroppo, temo che dovrai sostituire le classi con cui accedi ai dati: 
i driver *BDP* sono interamente gestiti, tuttavia alcuni di questi fanno 
riferimento in ultima istanza a librerie native ("msjet40.dll", se non 
ricordo male, nel caso di Access, che sembra essere il tuo).
Per questioni di sicurezza, il provider Aruba non consente l'uso di 
librerie native, salvo per le specifiche tecnologie supportate per 
l'accesso ai dati, quali OLE DB e ODBC.
Devi quindi abbandonare l'uso di BDP per Access e sostituirlo con una 
delle gerarchie di classi 
ADO.NET
 che fanno riferimento alle tecnologie 
precedentemente menzionate, usando *OleDbConnection*, *OleDbCommand*, 
*OleDbAdapter*, oppure *OdbcConnection*, *OdbcCommand*, *OdbcAdapter* e 
così via al posto delle classi analoghe BDP. :-|


 
Capisco.... sapresti dirmi dove posso trovare dei tutorial su come usare 
queste tecnologie?
grazie
rob

 queste tecnologie?
Dal punto di vista teorico, puoi leggere qui:
http://www.aspitalia.com/articoli/asp.net/adodotnet.aspx
(gli esempi sono espressi in 
VB.NET
, ma la traduzione in Delphi è 
pressoché immediata, basta comprendere l'uso delle classi e dei 
rispettivi membri)
In alternativa, in lingua inglese, puoi leggere qui:
http://delphi.about.com/od/adonet/ADONET_tutorials_and_articles.htm
Ad ogni modo, quanto c'è da sapere in merito non varia di molto rispetto 
a quanto serve conoscere per usare BDP, poiché le classi condividono 
tutte gli stessi discendenti, cioè le interfacce e le classi del 
namespace "System.Data" che fanno parte della libreria base (FCL) del 
.NET Framework.
I componenti BDP, tuttavia, forniscono l'accesso generalizzato a più 
database con driver (possibilmente) "gestiti", se disponibili, e 
possiedono alcune proprietà e metodi che li rendono più famigliari a chi 
è abituato a lavorare con i componenti per l'accesso ai dati della VCL, 
e lo stesso vale per i *dbWeb Controls*; questi ultimi forniscono poi 
funzionalità che sono state incluse nella libreria base solo nelle 
edizioni più recenti del framework (es. "live data" a designtime).


 
http://delphi.about.com/od/adonet/ADONET_tutorials_and_articles.htm
ecc...
Grazie mille Marco, provo a vedere nei link che mi hai dato, magari se 
ho qualche problemino ti "rompo" ancora :-D.
grazie ancora
Roberto

 ho qualche problemino ti "rompo" ancora :-D.
Se conosco la problematica e riesco ad aiutare, ben volentieri. ;-)


 Se conosco la problematica e riesco ad aiutare, ben volentieri. ;-)
Ciao Marco, ho provato a leggere dai siti che mi hai indicato e il 
concetto mi è chiaro più o meno, non è che sapresti dove trovare un 
esempio che metta in pratica il tutto? Ho provato a fare delle ricerche 
in giro ma senza fortuna....
ciao
roberto

 in giro ma senza fortuna....
Trovi diversi articoli interessanti su BDN, di Cary Jensen:
http://bdn.borland.com/article/30113
http://bdn.borland.com/article/30237
http://bdn.borland.com/article/31014
http://bdn.borland.com/article/31906
Ne trovi anche sulla documentazione ufficiale Microsoft del .NET 
Framework: 
http://msdn.microsoft.com
.
