sabato 13 novembre 2010

Errore servizio SMTP IIS 'Unable to open the message for delivery'

Mi sono imbattuto in uno strano errore che impediva al servizo SMTP di IIS di mandare la posta.L'errore si manifestava con due sintomi.
Veniva scritto un evento di errore di Sistema con il seguente contenuto:Event Type: Warning
Event Source: smtpsvc
Event Category: None
Event ID: 4006
Date:  13/11/2010
Time:  22.52.19
User:  N/A
Computer: [...]
Description:
Message delivery to the host '[...]' failed while delivering to the remote domain '[...]' for the following reason: Unable to open the message for delivery.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: e0 02 04 c0               à..À   

Inoltre, nel percorso C:\Inetpub\mailroot\Queue il numero di file delle email continuava a crescere e le email non venivano spedite.

L'unico modo per risolvere il problema è stato disinstallare il componente SMTP da installazione applicazioni -> componenti di windows e reinstallarlo.

venerdì 15 ottobre 2010

Error calling a WebService method: "The request failed with HTTP status 401: Unauthorized."

If you get the error "The request failed with HTTP status 401: Unauthorized." when calling a .net web service running in IIS you must set the following properties in the calling application:

var ws = new localhost.WebService();

ws.Credentials = CredentialCache.DefaultCredentials;
ws.PreAuthenticate = true;

These settings will let you connect to the service.
If you need to you can manually specify credentials or use the credentials of the the calling application.

martedì 13 aprile 2010

Benchmark of the .Net Framework 4.0

I was interestend in the performance differences between the various .Net framework versions so I made a bunch of simple applications that does the following:
1) a loop that 500000000x adds a random number to an Int64
2) a loop that inserts 30000x random numbers in a listbox without BeginUpdate
3) a loop taht inserts 30000x random numbers in a listbox with BeginUpdate

I tested the Windows Forms using the .Net Framework 2.0, 3.5, 4.0 and the WPF using the .Net Framework 4.0 and these are the results:

.Net Framework 2.0:
Sum loop: 5968ms
Insert without BeginUpdate: 4393ms
Insert with BeginUpdate: 154ms

.Net Framework 3.5:
Sum loop: 5999ms
Insert without BeginUpdate: 4435ms
Insert with BeginUpdate: 159ms

.Net Framework 4.0:
Sum loop: 6024ms
Insert without BeginUpdate: 4634ms
Insert with BeginUpdate: 159ms

.Net Framework 4.0 WPF:
Sum loop: 6953ms
Insert: 155ms

The difference between the various versions of the .Net framework is really marginal, there is a trend that shows that every new version of the framework adds a bit of overhead.

The strange thing is that the loop code has nothing to do with the user interface. But when using the WPF is up to a second slower! I made the test many times and the result is always the same, the WPF code is slower than the same code in Windows Forms.

The UI responsiveness is nearly the same in this benchmark.
When resizing a form with anchored controls, bot tecnologies leaves a bit of lag on redraw. But the WPF implementation is better, feels more smooth. But the difference is not substantial.

In this benchmark the only substantial UI difference is that scrolling a big ListBox in WPF is laggy compared to the WF experience. In other words, when you drag the listbox's scrollbar in WPF it lags behind your mouse.

Here you can download the benchmark VS2010 project.

giovedì 28 gennaio 2010

Abilitare Intel VT su Acer Aspire 3810T

Il bios fornito dall'ACER per il 3810T in vendita non supporta la virtualizzazione hardware Intel. Per risolvere il problema scaricare l'ultima versione del BIOS dal sito di supporto ACER.

Dopo aver completato la procedura la virtualizzazione hardware sarà disponibile.

Se l'aggiornamento del bios vi dice che il vostro modello non è supportato dovete provare con un aggiornamento più vecchio. Devono aver cambiato qualcosa che impedisce di fare un salto da un bios vecchissimo all'ultimo.

Ripristino BIOS C700 / CQ40 / CQ45 / DV4 / DV5 / DV6 / HDX 16 / HDX 18 - Insyde BIOS Corrotto

Un cliente ha rovinato il bios di un HP HDX 16 durante l'aggiornamento. Il problema era della tipologia PEBCAK, precisamente il cliente ha staccato il cavo di corrente durante l'aggiornamento rendendo il portatile un ferma carte. Generalmente tutti i bios recenti hanno un qualche tipo di procedura di ripristino del bios, così mi sono fatto una ricerchina in google e ho fatto un collage delle varie informazioni frammentarie che ho trovato. La ricerca ha portato a buoni frutti e ora il problema è risolto ed il BIOS funziona e il sistema operativo carica.


La buona notizia:
Se il notebook fa bip è ancora vivo e si può resuscitare.

Il sintomo:

Dopo che si accende il portatile le spie diventano bianche ma lo schermo rimane spento. I led Blocco Maiuscole e  il Blocco Numerico lampeggiano. Il notebook fa bip.

La soluzione:
Andare sul sito di supporto HP e scaricare l'aggironamento del bios HP HDX 16's. Lanciare il programma scaricato che estrarrà de file in una cartella simile a "C:\SwSetup\sp46073". In quella cartella troverete un file chiamato "3610F32.fd". Il file deve essere copiato su una chiavetta USB vuota formattata FAT16 o FAT32.

Copiare e rinominare il file così:

361B.BIN
361B.ROM
3610.BIN
3610.ROM
CRISIS.BIN
CRISIS.ROM

(Non sono sicuro di quale è il nome file giusto, ma deve essere uno di quelli perché ha funzionato)

I nomi dei file possono essere trovati aprendo il file platform.ini e sbircinando la seguente sezione:

[Platform_Check]
flag=2
PlatformName=361B
PlatformName2=3610


I passi finali:
Staccare la batteria e la presa di corrente, riattaccare la presa di corrente accendere e poi spegnere il portatile.

premere e tenere premuti i tasti WINDOWS e B contemporaneamente,
collegare il cavo di alimentazione, attendere 5 secondi e accendere il portatile
Dopo 15 secondi rilasciare i tasti WINDOWS e B

I bip del computer dovrebbe ora essere diversi e la spia della penna usb dovrebbe lampeggiare

Aspettare finchè il portatile non si spegne (può durare a lungo, anche più minuti).

Staccare la corrente e dopo una decina di secondi ricollegare la corrente e accendere il portatile.



Dovrebbe funzionare di nuovo tutto.

Per portare a termine la procedura correttamente ho dovuto provare più e più volte. Provare anche senza staccare il cavo di corrente.

C700 / CQ40 / CQ45 / DV4 / DV5 / DV6 / HDX 16 / HDX 18 - Insyde BIOS recovery

A customer bricked an HP HDX 16 during a BIOS update. The problem was caused by PEBCAK, the customer disconnected the power cord. Usually there is a procedure to reload the bios from a bricked motherboard. I started googling around. The search was usefull as I resolved the problem and now the BIOS is flashed and the OS boots.

The Good news:
If the notebook beeps it is still alive and you can bring it back to life.

The Simptom:
After the notebook is powered on, the white LEDs switches on but the screen remains blank. Caps Lock and Block Num blinks. The notebook beeps.

The Solution:
Go to the hp support site and download HDX 16's BIOS update. Run the executable file and it will decompress in a folder like"C:\SwSetup\sp46073". There will be a file called "3610F32.fd". That file must be copied to a formatted usb flash drive (FAT16 or FAT32) and renamed with the following names:

361B.BIN
361B.ROM
3610.BIN
3610.ROM
CRISIS.BIN
CRISIS.ROM

(I'm not sure which file name is correct, but it was one of the list as the process worked)

The name of the files can be read from the platform.ini file in the decompressed folder in the following section:

[Platform_Check]
flag=2
PlatformName=361B
PlatformName2=3610


The next steps:
Disconnect the battery and the AC Cord,
Press and hold WIN + B keys
Connect the AC Cord, wait 5s and switch on the notebook
After 15 seconds release the WIN + B keys.

The beeping of the computer should be different and the led of the usb flash drive sould be blinkng.

Wait until the notebook powers itself down.

Disconnect the AC Cord and wait a bit, reconnect the cord and power on the notebook. All should be working fine now.

I had to retry a couple of times to get the procedure to work.

giovedì 21 gennaio 2010

I report e la toolbar non vengono visualizzati correttamente con IIS7 e Microsoft Report Viewer

Il problema più evidente è che la toolbar non viene visualizzata correttamente:



Il problema consiste nel fatto che Visual Studio configura il file web.config con i parametri per IIS6 e non per IIS7

Per risolvere il problema aprire Gestione Internet Information Services (IIS), fare click sul sito web, fare click su Mapping Gestori.

A questo punto fare click in azioni su "Aggiungi gestore gestito..."

In "Percorso Richiesta" digitare "Reserved.ReportViewerWebControl.axd"

In "Tipo" digitare "Microsoft.Reporting.WebForms.HttpHandler" e a questo punto dovrebbe essersi aperto l'elenco sottostante e scegliere la voce completa come ad esempio: "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

Nel campo "Nome" digitare "Reserved-ReportViewerWebControl-axd"

Confermare la maschera.

A questo punto il report dovrebbe essere funzionante.

Lo script ha aggiunto al nodo "system.webServer", il nodo "handlers" e in questo la seguente stringa:

<add name="Reserved-ReportViewerWebControl-axd" path="Reserved.ReportViewerWebControl.axd" precondition="integratedMode" resourcetype="Unspecified" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" verb="*">