Errore smtp 504: Helo command rejected: need fully-qualified hostname

Inviando e-mail e newsletter utilizzando il servizio CDONTS (mi è capitato tramite ASP o ASP.NET), si può ricevere il seguente errore:

smtp 504 <IP>: Helo command rejected: need fully-qualified hostname

oppure:

smtp 504 <nome_server>: Helo command rejected: need fully-qualified hostname

e la mail inviata a quel destinatario non viene spedita. A molti è recentemente capitato inviando email a libero.it

Si tratta fondamentalmente dello stesso problema: inviate con il comando  EHLO/HELO l’IP del server oppure un nome non pubblico.

E’ ciò che fanno continuamente gli spammer inviando e-mail utilizzando semplicemente come sender un IP od un nome non corrispondente ad un dominio per evitare di poter essere rintracciati.

La soluzione è semplice:

  • apri la console di gestione di IIS
  • visualizza le proprietà del default SMTP Virtual Server (Server Virtuale SMTP Predefinito)
  • seleziona la scheda Delivery (Recapito)
  • clicca su Advanced (Avanzate)
  • nel campo “Fully-qualified domain name” (Nome Dominio Completo) inserisci il nome del dominio pubblico

A questo punto i server postali accetteranno correttamente le email in ingresso in quanto in grado di riconoscere correttamente il mittente.

Questa impostazione è possibile sugli SMTP server presenti in:

  • IIS 5.1
  • IIS 6.0 o superiori

quindi su tutti i sistemi Windows XP Professional, Windows 2000 Server e Windows 2003

Share

Aumentare le prestazioni di Mozilla FireFox

Per migliorare i tempi di risposta del browser Mozilla FireFox modificarne la configurazione seguendo questi passi:

  1. Digitare about:config”  nella barra degli indirizzi
  2. Inserire network.http.pipelining” nel filtro e modificarne il valore in “true
  3. Inserire network.http.proxy.pipelining” nel filtro e modificarne il valore in “true
  4. Inserire  “network.http.pipelining.maxrequests” nel filtro ed incrementare il valore. Ad esempio impostandolo a 20 si effettuano fino a 20 richieste contemporanee
  5. Cliccare sul tasto destro da qualche parte sulla pagina e selezionare “New”, poi “Integer”. Chiamare il nuovo parametro “nglayout.initialpaint.delay” e ad assegnargli valore “0“. Ciò renderà il browser più rapido nelle riposte
  6. Chiudere e riaprire FireFox (capita talvolta che FireFox non si chiuda correttamente ed in questo caso terminarlo forzatamente dal task manager)
Share

Disabilitare i performance counters delle Enterprise Library

Stanco degli svariati errori che le Enterprise Library danno provando di accedere ai Performance Counters, ai WMI, all'event viewer ecc. ecc. ho trovato un rapido modo per disabilitarli (il che spero che provochi anche un aumento di prestazioni).

Per fare ciò:

  1. Aprire con visual studio la soluzione completa:
    Start->Programmi ->Microsoft Patterns and Practices -> Enterprise Library -> Applications Blocks -> Enterprise Library..sln
  2. Cercare il progetto "Common", premere il tasto destro e selezionare "Properties"
  3. Nelle  “Configuration Properties”  selezionare l'opzione "Build"
  4. Nella sezione  "Conditional Build" rimuovere tutto tranne  “DEBUG;TRACE”"
  5. Ricompilare l'intera soluzione (verificare in "Common" se sono rimasti effettivamente solo  “DEBUG;TRACE”  in quanto al primo giro non me li aveva salvati)
  6. A questo punto bisogna riportare le DLL nella GAC usando:
    Start->Programmi ->Microsoft Patterns and Practices -> Copy assemblies to bin directory
  7. Se non si usa la GAC è necessario ricopiare le DLL usate nella directory bin dell'applicazione
  8. Per sicurezza rimuovere e ricreare le reference nella vostra applicazione e ricompilarla
  9. Mettete tutto sul server di produzione
  10. E finalmente niente più errori

 (Thanks to:  Sashidhar Kokku at http://dotnetjunkies.com/WebLog/sskokku/archive/2005/03/25/61376.aspx)

Share

SecurityException utilizzando le Microsoft Enterprise Library

Utilizzando le Microsoft Enterprise Library si può ricevere il seguente errore:

System.Security.SecurityException: Requested registry access is not allowed

In genere ciò non avviene sulla propria workstation di sviluppo ma quando si installa l'applicazione sul web server di produzione (dal cliente oppure in hosting).

Il motivo è che le Enterprise Library per funzionare correttamente richiedono la creazione nel registro di appositi Performance Counter

Quindi è necessario aggiungere alcune chiavi di registro. Si possono inserire manualmente le righe seguenti nel registro oppure si possono copiare in una file con estensione .reg (ad esempio enterprise.reg) e facendoci poi doppio click sopra avviene automaticamente l'installazione.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Backup Sink]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Caching]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Configuration]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Cryptography]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Data Service]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Distributor Service]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEntLib Exception Handler]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Exception Handling]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Instrumentation]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Logging Service]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Security]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationEnterprise Library Security Cryptography]
"EventMessageFile"="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll"

Alcuni post indicano come strettamente necessaria esclusivamente l'ultima chiave ma da me non ha funzionato finchè non le ho installate tutte.

Aggiornamento: "Come disabilitare i performance counters nelle Enterprise Library"

Share

Come utilizzare il controllo AdRotator in ASP.NET

L'implementazione di un meccanismo di visualizzazione dei banner a rotazione in ASP.NET è molto simile a quanto era necessario in ASP classico.

  1. Inserire il controllo AdRotator sul form
    <asp:AdRotator id="AdRotator1" runat="server"></asp:AdRotator>
  2. Anche in ASP.NET come in ASP l'elenco dei banner risiede su di un file. A differenza di ASP classico però in ASP.NET tale file è in formato XML.
    Il file XML ha la seguente struttura:

    <Advertisements>
    <Ad>
    <ImageUrl>/images/banner/ban1.gif</ImageUrl>
    <NavigateUrl>http://www.be-st.it</ NavigateUrl >
    <AlternateText>Be.St. Web Consulting </AlternateText>
    <Impressions>70</Impressions>
    </Ad>
    <Ad>
    <ImageUrl>/images/banner/ban1.gif</ImageUrl>
    <NavigateUrl>http://www.be-st.it/prodotti</NavigateUrl>
    <AlternateText>Prodotti e-commerce </AlternateText>
    <Impressions>30</Impressions>
    </Ad>
    </Advertisements>

    <ImageUrl>: percorso in cui risiede il banner
    <NavigateUrl>: url a cui ci si collega cliccando sul banner
    <AlternateText>: è il testo visualizzato passando sopra l'immagine o se l'immagine non viene correttamente caricata
    <Impressions>: ha un nome un po' fuorviante. In realtà indica semplicemente l'importanza (o priorità) del banner.

     

  3. Il file XML creato va inserito come parametro nell'attributo AdvertisementFile del tag AdRotator
    <asp:AdRotator id="AdRotator1" runat="server" AdvertisementFile="banner.xml"></asp:AdRotator>
Share