martedì, novembre 27, 2007

Service install error

Using VS2005 you can create NTServices. Every service runs under the permission of an account, tipically Network Service or Local Service. But there are situations where you need to run the service with another account.
When you create an instance of a ServiceProcessInstaller you can specifiy the Account property: LocalService, NetworkService, LocalSystem or User. User is not a real account. It's a "placeholder" and you will set the real account during installation.

To install a service, you must use InstallUtil.exe from the NET Framework:

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ InstallUtil.exe foo.exe

After pressing enter, install starts and after some seconds you are prompted with a windows asking username and password for the account:



Important: you must add ".\" before the username. If you do not that, you get an error and your service will not be installed:

An exception occurred during the Install phase.
System.ComponentModel.Win32Exception: The account name is invalid or does not exist, or the password is invalid for the account name specified



lunedì, novembre 19, 2007

NLB does not check IIS status

Rember: Network Load Balancing (NLB) does not check services status. It works directly on TCP/IP and it is not aware of upper services status (IIS, etc.).

If you have a NLB system running and you shutdown a machine, the "cluster" converges in some seconds. The http connections are than served by the remaining machines. But if you stops the IIS instance of one server, NLB continues to send http traffic to that machine.

Reference: http://support.microsoft.com/?id=234151



PS: I do not agree with calling NLB a "cluster" solution. Windows 2003 offers a real cluster solution. NLB is only a "light cluster".

domenica, novembre 04, 2007

FTPS su IIS7

La nuova versione server di Windows (Windows 2008) avrà un supporto nativo per FTPS (da non confondersi con SFTP).
Attualmente Win2008 è scaricabile dal sito di Microsoft in versione RC0 - Release Candidate 0 (la data prevista per il rilascio definitivo è il 27 Febbraio 2008).
Win2008 contiene il nuovo IIS, versione 7. IIS7 supporta siti FTPS (FTP over TLS). Ma attenzione, IIS7 presente nella RC0 è ancora del vecchio tipo, per intenderci quello di IIS6.
Il nuovo servizio FTP/FTPS deve essere scaricato a parte ed installato dopo aver installato IIS7.
[download FTP/FTPS service per IIS7]
Sempre sul sito IIS.NET è presente un interessante articolo "Using FTP over SSL" che spiega come installare e configurare il servizio FTP. Spiega anche come autocostruirsi un certificato di test per provare FTPS.

Uno degli aspetti più importanti di FTPS è la possibilità di impostare quali connessioni debbano essere cifrate: solo quelle del canale di controllo (username/password/comandi), solo per il cancale dati o entrambi.


Dopo l'installazione molto probabilmente non sarà possibile eseguire connessioni da altri host. E' "solo" colpa di Windows Firewall presente su Windows 2008. Se l'obiettivo è fare solo un paio di test sarà sufficiente disabilitarlo. Se invece lo si vuole mantenere attivo, è necessario attivare le regole del caso.


Per sviluppatori: al momento non ho ancora trovato la documentazione, ma sembra sia possibile scivere propri moduli di autenticazione per FTP su IIS. Vedi:
How to write a simple Custom Authentication Provider for FTP 7
Effettivamente nelle finestre di management di IIS ci sono alcune voci e finestre interessanti:





SQL Server - DBCC DROPCLEANBUFFERS

Per essere sicuri di eseguire dei test di performane realmente indicativi, ricordarsi di svuotare i buffer di SQL Server con il comando DBCC DROPCLEANBUFFERS
In questo modo i tempo i tempi di esecuzione non saranno influenzati dalle esecuzioni precedenti delle stesse query.

giovedì, novembre 01, 2007

Redbook - TCP/IP Tutorial and Technical Overview

Da leggere o da tenere come riferimento. Un bel Redbook di IBM uscito un po' di anni addietro e aggiornato nel 2006: TCP/IP Tutorial and Technical Overview

C'è un po' tutto quello che ha a che fare con TCP/IP: da IP stesso fino ai protocolli di più alto livello (http, ftp, smtp, ldap, h323, ecc.).