|
Di seguito tutti gli interventi pubblicati sul sito, in ordine cronologico.
Di Admin (del 25/07/2006 @ 12:40:28, in ASP, linkato 377 volte)
Spesso si vuole inviare una email a seguito di interazioni con gli utenti. Inviare email è possibile utilizzando il componente CDONTS nei sistemi gestiti da IIS4.0.
Inviare email da pagine ASP richiede pochi semplici passaggi; Microsoft a partire dalla versione IIS4.0 ha messo a disposizione lo strumento CDONTS che nel tempo si è evoluto e a partire dalla versione IIS5.0 distribuita con Windows2000 ha fatto la sua comparsa CDOSYS. Sebbene si ancora possibile installare la vecchia versione anche in sistemi operativi recenti, è è bene sottolineare, comunque, il componente CDOSYS presenta sostanziali miglioramenti come evidenziato nel bulletin board di Microsoft. Tra di essi i più significativi sono un più basso overhead del servizio, una più efficiente gestione del codice HTML e una più ampia varietà di proprietà e metodi. Lasciano ad una successivo post l'implementazione del codice per l'invio con il componente CDOSYS, ora concentriamoci sulle poche, semplici e fin troppo chiare righe per l'utilizzo dell'ancora diffusissimo CDONTS. Set objMail = Server.CreateObject("CDONTS.NewMail") ' Creo l'oggetto
objMail.From = "mittente@miodominio.suffisso" ' definisco gli attributi come il mittente, il destinatario, etc etc. objMail.To = "destinatario@suodominio.suffisso"
objMail.Cc = "altroindirizzo@altrodominio.suffisso" '* objMail.Bcc = "altroindirizzo@altrodominio.suffisso" '*
objMail.Subject = "Subject della mail" objMail.Body = & "Testo della mail da inviare"
objMail.Importance = 0 '*
objMail.MailFormat = 0 ' 0 è il formato testo, 1 è HTML objMail.BodyFormat = 0 ' 0 è il formato testo, 1 è HTML
' Se volessi allegare un file, inoltre, è sufficiente inserire la riga seguente indicando ' in "path\nome_file.ext" il percorso fisico del file nel disco mentre in "nomefiledesiderato.ext" ' il nome del file che risulta visibile nella mail
objMail.AttachURL server.MapPath("path\nome_file.ext"), "nomefiledesiderato.ext"
objMail.Send ' invio della mail
Set objMail = Nothing
' distruzione dell'oggetto NB: non tutti gli attributi sono obbligatori, in particolare quelli contrassegnati con * sono facoltativi. Per chi volesse approfondire questo argomento segnalo anche il link a MSDN.
Di Admin (del 23/07/2006 @ 18:58:35, in Varia, linkato 477 volte)
Andando ad analizzare i log files di IIS, potete notare che tutti i dati relativi a data ed ora delle singole richieste al server non sono esatte: in particolare, sono falsate tanto quanto il vostro fuso orario sia scostato dal GMT.
Durante la fase di installazione di IIS, l'impostazione di default per quanto riguarda la generazione dei files di log è quella di utilizzare il formato di file registro esteso W3C che si basa sull'orario GMT. Vi sono due modi per risolvere questo problema: - modificare il formato del file di registro
- convertire il file di log utilizzando una utility presente in Windows
Metodo 1.: modificare il formato del file di registro In IIS, selezionando Poprietà dal menù contestuale attivabile col clic del tasto destro su Sito Web Predefinito, vengono visualizzate alcune impostazioni. E' sufficiente, a questo punto, selezionare dalla combobox Formato registro attivo: l'opzione " Formato di file di registro Micorsoft IIS". Naturalmente, andando a scegliere Proprietà è possibile anche modificare le altre impostazioni come la pianificazione del registro, la cartella di default ed altro. Metodo 2.: utilizzare una utility distribuita con Windows per convertire i files di log L'utility in questione è situata in X:\Windows\System32 (ovviamente con X: indico il vostro rootpath) ed è chiamata convlog.exe (abbastanza autoesplicativo il nome, no?) La sintassi per questo comando prevede: convlog [opzioni] FileRegistrodove: -i<i|n|e> = tipo file di registro in input i - Formato standard Microsoft per registri Internet n - Formato di file registro comune NCSA e - Formato di file registro W3C esteso -t <ncsa[:GMTOffset] | none> l'impostazione predefinita NCSA -o <directory di output> come directory predefinita verr utilizzata la director y corrente -x salva in un registro .dmp le voci non Web -d = converte in formato DNS gli indirizzi IP -l<0|1|2> = Formato locale data standard Microsoft Internet 0 - MM/GG/AA (predefinito - es. USA) 1 - AA/MM/GG (es. Giappone) 2 - GG.MM.AA (es. Italia) -c = continua anche in presenza di una riga non formattata correttamenteTralasciando tutti le possibili opzioni, la richiesta più comune in questi casi è: convlog -ie LogFileName.log -t ncsa:-scostamento da GMTL'aspetto, secondo me, negativo di questa seconda soluzione è che non viene aggiornato il file di log con ora e data esatta, ma viene inserita in ogni sua riga l'informazione di correzione oraria. D:\>convlog -ie LogFile.log -t ncsa:+0200
Apertura del file logfile.log per l'elaborazione in corso... Scrittura nel file .\logfile.log.ncsa in corso... logfile.log completato. 23 righe elaborate. 11 righe Web scritte. 12 righe non Web ignorate.
Totali: ======= Totale righe elaborate: 23 Totale righe Web scritte: 11
Di seguito propongo una qualsiasi riga presente nel file di log: 2006-03-02 10:10:05 W3SVC1 127.0.0.1 GET /test - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+SV1;+.NET+CLR+1.1.4322) 301 0 0mentre questa è l'informazione aggiunta alla riga soprastante: [08/May/2006:10:10:05 +0200]
Di Admin (del 19/07/2006 @ 11:31:25, in ASP.NET, linkato 335 volte)
Vi è mai capitato un errore simile a questo? "Error 60 It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level."
Bene, è capitato anche a me. Si tratta di un conflitto che occorre quando all'interno della directory in cui risiedono le pagine .ASPX della vostra applicazione, in qualche punto (anche nelle sub-dir) viene trovato un ulteriore web.config oltre a quello della root dir. Il compilatore quindi, segnala di risolvere la molteplicità di configurazione per evitare possibili problemi. A me è successo perchè avevo fatto una copia di backup di tutti i files in una sottocartella prima di una pesante ricompilazione di tutta l'applicazione. Per quanto riguarda il messaggio di errore completo: Error 60. It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. PATH\Documenti\Visual Studio 2005\WebSites\ProjectName\backup\web.config 58
E' sufficiente rimuovere dalla root del progetto (o rinominare) i superflui web.config 'incriminati' per risolvere il problema.
Di Admin (del 14/07/2006 @ 08:00:00, in F0so, linkato 247 volte)
Oggi, finalmente, ho deciso di pubblicare nella sezione personale del sito un link che forse non passerà inosservato a coloro che si trovano a curiosare tra queste pagine. Come indicato nella pagina, si tratta di un esperimento volutamente limite teso a stendere un ponte tra conoscenze informatiche e interesse verso le competizioni motoristiche in genere. Al momento è solo disponibile un estratto [ordinato, credo] dagli appunti di analisi che suggerisce quale sia l'approccio utilizzato per modellizzare il problema e quali siano le grandezze per ora in gioco. E' in fase di compilazione avanzata una prima beta del software [o meglio, le classi principali sono pronte, sto valutando il livello di complessità che voglio raggiungere in questa prima release...]. Non appena pronta per il download, sarà mia cura pubblicare immediatamente un post per notificarlo a tutti gli interessati. Come altresì indicato in coda alla pagina, saranno benvenuti tutti i commenti ed i suggerimenti per estendere/correggere qualsiasi degli aspetti toccati [e non]; qualora vogliate farne, l'indirizzo è sempre info@idsee.net.
Di Admin (del 12/07/2006 @ 09:32:44, in .NET, linkato 299 volte)
La soluzione al problema è del tutto analoga alla versione per VB.NET, con le ovvie modifiche per adattare il codice al linguaggio diverso; in realtà ho consultato più di qualche fonte per ispirarmi e costruire qualcosa di funzionante; in definitiva lavoro con C# da poco tempo.... Per stabilire se il pc è collegato ad internet, quindi, è sufficiente istanziare una 'HttpWebRequest' verso un host funzionante (al solito, il consiglio è quello di scegliere un indirizzo fail-proof come google o mamma m$) e verificare che lo 'StatusCode' del 'HttpWebResponse' di ritorno sia 'OK'. Questa funzione mi è di supporto in un programmino che effettua altri controlli e quindi ho deciso che il Main() mi restituisca solo un booleano. public bool ConnectionOn() { // Istanzio i miei oggetti per la verifica HttpWebRequest Richiesta; HttpWebResponse Risposta; try { // Definisco l'indirizzo per la prova Richiesta = (HttpWebRequest)WebRequest.Create("http://www.microsoft.com"); Risposta = (HttpWebResponse)Richiesta.GetResponse();
if (Risposta.StatusCode.ToString().Equals("OK")) { // OK, connessione attiva perchè l'host è raggiungibile return true ; } else { // No, l'host non è raggiungibile. Lo 'StatusCode' chiarisce? return false; } } catch { // Connessione non attiva. return false; } }
|