Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

ADO.NET Data Services: utilizzare l'Internet Information Services locale con Visual Studio per i test

In tutti gli articoli e blog post nei quali ho parlato degli ADO.NET Data Services, si è fatto utilizzo del server Web di sviluppo ASP.NET avviando il debug dei servizi da Visual Studio 2008. Questo tipo di operazione è molto veloce e comoda e non richiede grossi sforzi ed è sicuramente valida per scenari di test.

Tuttavia, e questo non vale solo negli ADO.NET Data Services ma, più in generale, con i servizi WCF, gli scenari reali prevedono con molta probabilità la distribuzione dei servizi stessi verso Microsoft Internet Information Services. Ciò premesso, potrebbe essere molto utile utilizzare IIS per il debug dei servizi con Visual Studio 2008 prima di eseguire il deploy finale.

Detto questo, immaginiamo di avere un progetto di ADO.NET Data Service aperto in Visual Studio (richiesto l'avvio con privilegi amministrativi). Apriamo la finestra My Project e spostiamoci nella scheda chiamata Web, all'interno della quale selezioniamo la voce Use Local IIS Web Server, quindi facciamo clic sul pulsante Create Virtual Directory, come da figura:

In questo modo verrà creata una directory virtuale per l'applicazione all'interno di Internet Information Services. Apriamo, poi, la console di amministrazione di Internet Information Services. Dobbiamo infatti abilitare l'autenticazione Windows. Selezionando l'applicazione Web di nostro interesse e quindi la voce Authentication, abilitiamo l'autenticazione Windows e disabilitiamo quella anonima:

Torniamo poi alla gestione dell'applicazione e selezioniamo la voce Authorization rules. Noterete che sono consentiti tutti gli utenti (All Users). Facciamo clic destro su All Users e scegliamo Edit. Nella finestra che compare, specifichiamo i vari verbi Http di interesse come in figura:

Chiudiamo la console di gestione di IIS e torniamo a Visual Studio. Proviamo ad avviare il servizio e... magia! Verrà ospitato in IIS e la serializzazione delle entità sarà correttamente mostrata in formato XML nel browser.

Ora, però, proviamo ad interrogare uno degli EntitySet, nel mio esempio "Customers". Guardate cosa appare:

Il servizio non è stato in grado di fare il login al database, poiché l'utente NT AUTHORITY\NETWORK SERVICE non è stato ancora aggiunto a quelli ammessi da SQL Server. Sicuramente se avete precedentemente abilitato questo speciale utente in SQL Server, il problema non sussiste. Diversamente, trattandosi dell'utente che viene usato dal sistema durante i test locali, dobbiamo abilitarlo attraverso SQL Server Management Studio.

Avviamo pertanto tale strumento. Facciamo clic su Security, quindi su Logins come in figura:

Facciamo clic destro su Logins e selezioniamo New Login. Specifichiamo il nuovo utente nella finestra che compare:

Appare così la finestra delle proprietà del nuovo utente aggiunto ai Login accettati da SQL Server:

Assegnamo a tale utente i permessi di accesso al database Northwind, cliccando su User Mappings. Dall'elenco dei database, selezioniamo quello di nostro interesse e, nella parte sottostante, diamo i permessi DataReader e DataWriter:

Il nuovo user è ora disponibile tra i Login accettati ed ha i permessi necessari:

Se ora torniamo a Visual Studio 2008, avviamo il debug del servizio e interroghiamo nuovamente i "Customers", tutto funzionerà a dovere:

E' chiaro che in scenari reali sia Internet Information Services che SQL Server vadano configurati nel modo appropriato, dipendente dal contesto applicativo. Nel fare il deploy dei Data Services si può fare riferimento a questa pagina della documentazione MSDN relativa ai servizi WCF.

Alessandro

Print | posted on mercoledì 22 aprile 2009 16:27 | Filed Under [ Visual Studio 2008 WCF Data Services/WCF RIA Services/OData ]

Powered by:
Powered By Subtext Powered By ASP.NET