<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.devleap.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paolo Pialorsi : WCF</title><link>http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx</link><description>Tags: WCF</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP2 (Build: 20611.960)</generator><item><title>Dynamic WCF Service Activation</title><link>http://blogs.devleap.com/paolo/archive/2013/06/06/dynamic-wcf-service-activation.aspx</link><pubDate>Thu, 06 Jun 2013 10:35:00 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:27456</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=27456</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2013/06/06/dynamic-wcf-service-activation.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Se vi servisse di attivare un servizio WCF dinamicamente, da codice, e non da .config ... ecco qualche riga che può esservi utile:&lt;/p&gt;&lt;p&gt;System.ServiceModel.Activation.ServiceRoute serviceRoute = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new System.ServiceModel.Activation.ServiceRoute(&amp;quot;SampleService.svc&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new System.ServiceModel.Activation.ServiceHostFactory(),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type.GetType(&amp;quot;SampleServiceActivations.WCF.SampleService, SampleServiceActivations.WCF&amp;quot;, true));&lt;br /&gt;System.Web.Routing.RouteTable.Routes.Add(serviceRoute);&lt;/p&gt;&lt;p&gt;&amp;nbsp;Da eseguire per esempio in un HttpModule o nel global.asax. Se poi dovete rimuovere il servizio:&lt;/p&gt;&lt;p&gt;System.ServiceModel.Activation.ServiceRoute serviceRouteToRemove = System.Web.Routing.RouteTable.Routes.OfType&amp;lt;System.ServiceModel.Activation.ServiceRoute&amp;gt;()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .FirstOrDefault(r =&amp;gt; ((System.ServiceModel.Activation.ServiceRoute)r).Url.Contains(&amp;quot;SampleService.svc&amp;quot;));&lt;br /&gt;if (serviceRouteToRemove != null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Web.Routing.RouteTable.Routes.Remove(serviceRouteToRemove);&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;Buon lavoro.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=27456" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category></item><item><title>WCF Express Interop Bindings</title><link>http://blogs.devleap.com/paolo/archive/2011/06/15/wcf-express-interop-bindings.aspx</link><pubDate>Wed, 15 Jun 2011 00:49:14 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:22682</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=22682</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2011/06/15/wcf-express-interop-bindings.aspx#comments</comments><description>&lt;p&gt;Come mi ha prontamente segnalato l’amico &lt;a href="http://blogs.msdn.com/b/mariofontana/" target="_blank"&gt;Mario&lt;/a&gt;, da pochissimo sono disponibili i &lt;a href="http://wcf.codeplex.com/wikipage?title=WCF%20Express%20Interop%20Bindings" target="_blank"&gt;WCF Express Interop Bindings&lt;/a&gt; dei quali potete trovare maggiori dettagli nel &lt;a href="http://blogs.msdn.com/b/appfabric/archive/2011/06/13/announcing-wcf-express-interop-bindings.aspx" target="_blank"&gt;blog del team&lt;/a&gt; di prodotto.&lt;/p&gt;  &lt;p&gt;A cosa servono, in due parole? Sono una estensione per VS2010 che consente di scegliere una piattaforma Java, tra quelle più diffuse, con cui si ha l’esigenza di interoperare da WCF. Il risultato della scelta è un custom binding configurato per parlare correttamente con una delle seguenti piattaforma Java:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Oracle WebLogic&lt;/li&gt;    &lt;li&gt;Apache Axis2&lt;/li&gt;    &lt;li&gt;IBM WebSphere&lt;/li&gt;    &lt;li&gt;Oracle Metro&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-09-metablogapi/3286.image3_5F00_thumb_5F00_124D2D8A.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Sicuramente lo proveremo su un progetto di interoperabilità al quale stiamo lavorando da qualche mese … ci risentiremo non appena l’avrò provato sul campo.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22682" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/Service+Oriented+Architecture/default.aspx">Service Oriented Architecture</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item><item><title>WF Security Pack CTP 1</title><link>http://blogs.devleap.com/paolo/archive/2010/07/14/wf-security-pack-ctp-1.aspx</link><pubDate>Wed, 14 Jul 2010 00:51:27 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:22295</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=22295</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2010/07/14/wf-security-pack-ctp-1.aspx#comments</comments><description>&lt;p&gt;Pochi giorni fa è stato rilasciato su &lt;a href="http://wf.codeplex.com/"&gt;CodePlex&lt;/a&gt; un aggiornamento delle estensioni di WF prodotte direttamente dal team di prodotto.&lt;/p&gt;  &lt;p&gt;In particolare ci tengo a segnalare il &lt;a href="http://wf.codeplex.com/releases/view/48114"&gt;WF Security Pack&lt;/a&gt; attualmente in CTP 1 perché mi sembra molto interessante l’idea di avere delle activity dentro WF 4 che consentano di integrarsi con WIF, con la Claim based authentication e con scenari complessi di ActAs via WS-Trust.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=22295" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/WF/default.aspx">WF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/WIF/default.aspx">WIF</category></item><item><title>Service Throttling in WCF 4.0</title><link>http://blogs.devleap.com/paolo/archive/2010/04/05/service-throttling-in-wcf-4-0.aspx</link><pubDate>Mon, 05 Apr 2010 20:03:42 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:19430</guid><dc:creator>paolo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=19430</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2010/04/05/service-throttling-in-wcf-4-0.aspx#comments</comments><description>&lt;p&gt;Oggi ho trovato sulla rete &lt;a href="http://blogs.msdn.com/drnick/archive/2010/03/31/changes-to-default-throttle-settings.aspx"&gt;questo post&lt;/a&gt; dell’ottimo Nicholas Allen a proposito di alcune novità sul comportamento di WCF 4.0 in merito al Service Throttling.&lt;/p&gt;  &lt;p&gt;Molto interessante notare che i valori di default del throttling sono ora da proporzionare al numero di core (mi sembra una scelta ragionevole). Attenzione però che se li cambiamo noi a mano, non saranno più moltiplicati per il numero di core, ma bensì condivisi e suddivisi tra i vari core.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=19430" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item><item><title>WCF 4.0: le novità</title><link>http://blogs.devleap.com/paolo/archive/2009/11/19/wcf-4-0-le-novit-224.aspx</link><pubDate>Thu, 19 Nov 2009 20:01:00 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:19285</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=19285</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2009/11/19/wcf-4-0-le-novit-224.aspx#comments</comments><description>&lt;p&gt;Sto seguendo la sessione di Ed Pinto a proposito delle novità di WCF 4.0. Qualche nota utile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configurazione:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Sono stati aggiunti i default endpoint ai servizi, basati su una ProtocolMapping table che per ogni scheme definisce il corrispondente binding di default, che verrà applicato se non viene specificato altro in modo esplicito.&lt;/li&gt;
&lt;li&gt;Possiamo specificare delle binding configuration senza nome (name=””) e queste diventeranno la configurazione di default per i binding assegnati di default dai default endpoint.&lt;/li&gt;
&lt;li&gt;Anche sul fronte dei behaviors ci saranno i default behaviors applicati ai default endpoint.&lt;/li&gt;
&lt;li&gt;Le impostazioni di cui sopra sfruttano anche l’ereditarietà dei web.config in una gerarchia di directory.&lt;/li&gt;
&lt;li&gt;Di fatto in questo modo possiamo pubblicare un servizio, senza bisogno di avere un .config apposito. Molti odiavano :-) i file di configurazione di system.ServiceModel e questo è un segnale di “disponibilità” :-) nei loro confronti.&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Possiamo fare a meno dei file .svc espliciti, sostituiti da una sezione di configurazione specifica (ServiceHostingEnvironment/ServiceActivations)&lt;/li&gt;
&lt;li&gt;Ovviamente c’è tutta la parte di Windows Server AppFabric (aka Dublin) che sarà finalmente disponibile il prossimo anno. Ne abbiamo già parlato a &lt;a href="http://devcon2009.devleap.com/"&gt;DevCon 2009&lt;/a&gt; a maggio 2009 e torneremo presto a parlarne in &lt;a href="http://devcon2010.devleap.com/"&gt;DevCon 2010&lt;/a&gt; e sui nostri blog. In questo ambito in particolare avremo:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Strumenti di monitoring “umani” ;-) e usabili&lt;/li&gt;
&lt;li&gt;Configurazione dei service host, della persistenza, del throttling e della sicurezza dei servizi direttamente dall’interfaccia di IIS7 tramite le estensioni di AppFabric&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;Avremo a disposizione un RoutingService che ci consente di gestire in modo comodo delle “message pump” che possono servire per gestire problematiche di routing, versioning, service bus, ecc. il tutto con delle logiche di message filtering basate su delle implementazioni specifiche di classi MessageFilter. Inoltre è molto interessante il routing tra diversi binding e tra diverse versioni di protocollo (da SOAP 1.1. a SOAP 1.2 per es.) o tra diverse piattaforme di sicurezza (da claim based a message based identity).&lt;/li&gt;
&lt;li&gt;Hanno migliorato il supporto al discovery dei servizi. C’è un nuovo DynamicEndpoint pensato per questo scopo da usare client-side.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=19285" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item><item><title>ADO.NET Data Services, REST, Windows Security e IIS</title><link>http://blogs.devleap.com/paolo/archive/2009/09/27/ado-net-data-services-rest-windows-security-e-iis.aspx</link><pubDate>Sun, 27 Sep 2009 12:12:42 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:19205</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=19205</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2009/09/27/ado-net-data-services-rest-windows-security-e-iis.aspx#comments</comments><description>&lt;p&gt;Durante l’estate ho dovuto fare il deployment di un application server per esporre alcuni servizi realizzati con gli ADO.NET Data Services. Chi mi conosce sa che in generale propendo per soluzioni ad hoc, con modelli ad oggetti indipendenti dal backend e dalla tecnologia di accesso ai dati, tuttavia in questo particolare caso (numero basso di utenti, numero elevato di entità e variabilità frequente delle strutture dati) ho preferito questa soluzione.&lt;/p&gt;  &lt;p&gt;Lascio una traccia di quello che ho dovuto fare per attivare la sicurezza integrata Windows, perché la procedura non è esattamente corrispondente a quello che ci si aspetterebbe:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Pubblicare la Virtual Directory in IIS&lt;/li&gt;    &lt;li&gt;Configurare l’accesso anonimo su IIS (infatti è WCF a gestire l’autenticazione integrata al posto di IIS)&lt;/li&gt;    &lt;li&gt;Mettere l’autenticazione di tipo Windows nella parte di web.config relativa a system.web&lt;/li&gt;    &lt;li&gt;L’autenticazione Windows integrata sui servizi si ricava in modo implicito dall’impostazione precedente, ma occorre configurare il binding (webHttpBinding) degli ADO.NET Data Services in modo personalizzato, nel web.config della Virtual Directory, per impostare i parametri al contorno (come maxReceivedMessageSize e maxBufferSize, oltre ai ReaderQuotas)&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Il contract da richiamare in configurazione è: System.Data.Services.IRequestHandler&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Configurare i method GET, MERGE, POST, PUT, DELETE per i file SVC da pubblicare, oppure mettere una regola catch all (*) via ISAPI (wildcard application maps)&lt;/li&gt;    &lt;li&gt;Assegnare il diritto di modifica sul file fisico .SVC sul file system del server web, per gli utenti che accederanno in modifica ai dati&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Ecco fatto :-) ! Buon lavoro …&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=19205" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://blogs.devleap.com/paolo/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>Workflow 4.0</title><link>http://blogs.devleap.com/paolo/archive/2009/06/11/workflow-4-0.aspx</link><pubDate>Thu, 11 Jun 2009 08:03:20 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:19101</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=19101</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2009/06/11/workflow-4-0.aspx#comments</comments><description>&lt;p&gt;Come molti di voi avranno notato, nella CTP di VS2010 uscita il mese scorso manca il template di workflow di tipo State Machine. Con .NET 4.0 il motore di WF4 è stato praticamente riscritto, il prodotto è stato completamente integrato con &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/05/07/the-road-to-4-wcf-changes-between-beta-1-and-ctp.aspx"&gt;WCF4&lt;/a&gt; (i due team di prodotto infatti si sono fusi, forse dovremmo parlare di “fusione per incorporazione” di WF :-) …). Ora in WF4 i workflow saranno orientati solo al markup e non dovrebbe più esistere il concetto di code beside di un workflow. Anche il set di activity di base (vedi &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/05/29/a-tour-on-the-wf4-activity-palette.aspx"&gt;qui&lt;/a&gt; per averne un’idea) e il modello di estendibilità delle activity personalizzate sono cambiati. Ora le activity non sono più classi derivate dalla classe base Activity, ma classi di una delle seguenti tipologie:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;WorkflowElement: classe base astratta per tutte le tipologie di activity&lt;/li&gt; &lt;li&gt;Activity: definite come markup e frutto della composizione di altre activity, come i workflow stessi&lt;/li&gt; &lt;li&gt;CodeActivity: classe base per le activity definite come codice, con l’override del metodo di Execute&lt;/li&gt; &lt;li&gt;NativeActivity: classe base per le activity definite come codice, che devono interfacciarsi con il motore di base di WF4, con il sistema di messaggi a code (ora ribattezzate bookmark), ecc.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;In questo contesto sono stati inseriti dei nuovi modelli di workflow. Nello specifico esiste ancora, seppur ridefinito con nuove activity e con un nuovo designer, il modello di Sequential workflow. Esiste un nuovo modello di workflow chiamato Flowchart, che può anche essere una parte di un workflow Sequential. Come citavo all’inizio del post poi non esiste più il modello di tipo State Machine. Mentre inizialmente (lo scorso anno) si ipotizzava che la causa di questa assenza fosse un porting non ancora completato del motore, ora è chiaro che lo State Machine non sarà supportato, almeno inizialmente. Infatti come spiegato in &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/06/05/migration-guidance-for-the-wf-developer.aspx"&gt;questa serie di documenti&lt;/a&gt; sulla migrazione da WF3 a WF4 con un modello di tipo Flowchart è possibile riprodurre il comportamento di uno State Machine.&lt;/p&gt; &lt;p&gt;Ovviamente, per quella che è la natura di .NET Framework, in .NET 4.0 sarà possibile avere comunque il supporto ai workflow definiti con il motore di .NET 3.0 e di WF3, come è spiegato anche &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/06/01/workflow-4-0-templates.aspx"&gt;qui&lt;/a&gt;, quindi non dobbiamo necessariamente buttare tutto il lavoro già svolto in WF3, soprattutto se abbiamo lavorato con le State Machine. Tuttavia è consigliabile iniziare a pensare ad un percorso di migrazione.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=19101" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/WF/default.aspx">WF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item><item><title>Certificati X.509 di test per WCF e abilitazione porte HTTP su ACL di Windows</title><link>http://blogs.devleap.com/paolo/archive/2009/01/07/certificati-x-509-di-test-per-wcf-e-abilitazione-porte-http-su-acl-di-windows.aspx</link><pubDate>Wed, 07 Jan 2009 12:13:15 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:18798</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=18798</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2009/01/07/certificati-x-509-di-test-per-wcf-e-abilitazione-porte-http-su-acl-di-windows.aspx#comments</comments><description>&lt;p&gt;Spesso durante le consulenze mi viene chiesto come creare con makecert dei certificati di test assimilabili a quelli veri. Ecco i comandi da impartire, che lascio come reference per me e per chiunque altro ne abbia bisogno:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=WCFService -sky exchange -pe&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Questo comando crea un certificato con SubjectName &amp;quot;WCFService&amp;quot; e lo salva nello store personale di certificati della macchina locale. Il parametro -sr (store location) e -ss (store) indicano dove salvare il certificato. Il parametro -a indica il tipo di hash da usare. In questo caso sha1. Il parametro -n indica il CN (Common Name) del Subject del certificato. Il parametro -sky exchange indica che la chiave verrà usata per lo scambio di dati. Infine il parametro -pe indica che la chiave privata deve essere marcata come esportabile.&lt;/p&gt; &lt;p&gt;Un&amp;#39;altra richiesta molto inflazionata è relativa a quali comandi usare per autorizzare un utente non admin (come dovremmo essere tutti sulle nostre macchine) ad utilizzare porte HTTP non standard per mettersi in ascolto con self host WCF. Ecco i comandi da impartire al sistema:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;netsh http show urlacl&lt;/li&gt; &lt;li&gt;netsh http add urlacl url=&lt;a href="http://+:XXXX/"&gt;http://+:XXXX/&lt;/a&gt; user=DOMAIN\Username&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Il primo comando mostra le URLACL attive. Il secondo, mettendo la porta al posto di XXXX e il dominio e nome utente nella proprietà user, abilita l&amp;#39;utente fornito a mettersi in ascolto sulla porta indicata.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=18798" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Demo TechDays 2008</title><link>http://blogs.devleap.com/paolo/archive/2008/12/09/demo-techdays-2008.aspx</link><pubDate>Tue, 09 Dec 2008 10:37:31 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:18776</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=18776</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2008/12/09/demo-techdays-2008.aspx#comments</comments><description>&lt;p&gt;Di seguito trovate le demo delle mie sessioni a TechDays 2008:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://devlab.devleap.it/PaoloPi/TechDays2008/DEV306-Demos.zip"&gt;DEV306 - SharePoint advanced workflow scenarios&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://devlab.devleap.it/PaoloPi/TechDays2008/DEV321-Demos.zip"&gt;DEV321 - Costruire servizi con Windows Communication Foundation 3.5&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Come ho già segnalato durante la sessione DEV321, l&amp;#39;esempio di applicazione asincrona basata su Northwind lo renderò disponibile in forma completa, sempre su questo blog, indicativamente nel periodo di Natale, quando avrò il tempo di finirlo con tutti i pezzi mancanti (security, service agent con MEP request/reply, ecc.).&lt;/p&gt; &lt;p&gt;Buon lavoro.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=18776" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>.NET 3.5 e Visual Studio 2008 SP1 - Beta</title><link>http://blogs.devleap.com/paolo/archive/2008/05/14/net-3-5-e-visual-studio-2008-sp1-beta.aspx</link><pubDate>Wed, 14 May 2008 00:17:21 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:18434</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=18434</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2008/05/14/net-3-5-e-visual-studio-2008-sp1-beta.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx"&gt;Ecco&lt;/a&gt; la prima Beta del SP1 di .NET 3.5 e Visual Studio 2008. Tra le novità più interessanti, oltre ai soliti bug fix tipici dei Service Pack, la diffusione di una nuova release di ADO.NET Entity Framework e ADO.NET Data Services e tutta una serie di migliorie a WCF, compreso un hosting wizard che dovrebbe aiutare nella creazione di WCF Service Host.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=18434" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>WCF Security Full Demo</title><link>http://blogs.devleap.com/paolo/archive/2007/12/16/wcf-security-full-demo.aspx</link><pubDate>Sun, 16 Dec 2007 17:01:45 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:18224</guid><dc:creator>paolo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=18224</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2007/12/16/wcf-security-full-demo.aspx#comments</comments><description>&lt;p&gt;Ho appena &lt;a href="http://weblogs.asp.net/paolopia/archive/2007/12/16/wcf-security-full-demo.aspx"&gt;pubblicato sul mio blog in inglese&lt;/a&gt; la &lt;a href="http://devlab.devleap.it/PaoloPi/WebCast/DevLeap.WCF.SecurityFullDemo-15122007.zip"&gt;demo&lt;/a&gt; che userò il 20 dicembre durante il &lt;a href="http://www.microsoft.com/italy/msdn/risorsemsdn/security/path/default.mspx"&gt;webcast dedicato alla sicurezza di SOAP e di WCF&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Trovo particolarmente interessante la comunicazione con ASMX usando WS-Security e uno UsernamePasswordToken via SSL. Purtroppo nel webcast non ci sarà tempo di vederlo in dettaglio, anche perché il webcast è di livello 300 e questo è un esempio decisamente meno introduttivo degli altri, però se vi serve di raggiungere WCF in modo sicuro da ASMX e non volete andare fuori dal &amp;quot;seminato&amp;quot; di WS-Security e di OASIS ... dategli uno sguardo per prendere qualche spunto.&lt;/p&gt; &lt;p&gt;Buon divertimento ...&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=18224" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://blogs.devleap.com/paolo/archive/tags/Service+Oriented+Architecture/default.aspx">Service Oriented Architecture</category><category domain="http://blogs.devleap.com/paolo/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category></item><item><title>SharePoint custom authentication con Windows CardSpace</title><link>http://blogs.devleap.com/paolo/archive/2007/08/30/sharepoint-custom-authentication-con-windows-cardspace.aspx</link><pubDate>Thu, 30 Aug 2007 19:44:01 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:17828</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=17828</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2007/08/30/sharepoint-custom-authentication-con-windows-cardspace.aspx#comments</comments><description>&lt;p&gt;Come ho segnalato anche nel &lt;a href="http://weblogs.asp.net/paolopia/archive/2007/08/30/sharepoint-custom-authentication-with-windows-cardspace.aspx"&gt;mio blog in inglese&lt;/a&gt;, oggi io e RoB abbiamo completato le demo della &lt;a href="http://www.sharepointconference.it/sessioni.aspx#DEV401"&gt;nostra sessione&lt;/a&gt; sulla SharePoint Custom Authentication&amp;nbsp;che terremo alla &lt;a href="http://www.sharepointconference.it/"&gt;SharePoint Conference 2007&lt;/a&gt;, il prossimo 19 e 20 settembre a Segrate.&lt;/p&gt; &lt;p&gt;Tra le parti che troviamo più interessanti e stimolanti c&amp;#39;è l&amp;#39;uso di &lt;a href="http://wcs.netfx3.com"&gt;Windows CardSpace&lt;/a&gt; per l&amp;#39;autenticazione forms su un Publishing Portal&amp;nbsp; pubblico e con accesso anonimo consentito.&lt;/p&gt; &lt;p&gt;Se volete vedere che faccia ha il risultato ... date uno sguardo al &lt;a href="http://weblogs.asp.net/paolopia/archive/2007/08/30/sharepoint-custom-authentication-with-windows-cardspace.aspx"&gt;post inglese&lt;/a&gt;, se invece volete capire come l&amp;#39;abbiamo realizzato: &lt;a href="http://www.sharepointconference.it/iscrizione.aspx"&gt;iscrivetevi&lt;/a&gt; alla conferenza :-) !&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=17828" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.devleap.com/paolo/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>WCF Message Inspector</title><link>http://blogs.devleap.com/paolo/archive/2007/08/23/wcf-message-inspector.aspx</link><pubDate>Thu, 23 Aug 2007 23:03:56 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:17802</guid><dc:creator>paolo</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=17802</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2007/08/23/wcf-message-inspector.aspx#comments</comments><description>&lt;p&gt;L'altro giorno ho pubblicato un &lt;a href="http://blogs.devleap.com/paolo/archive/2007/08/21/i-soa-tenents-hanno-senso-o-devono-essere-rivisti.aspx"&gt;post&lt;/a&gt; nel quale facevo riferimento alla possibilità di scrivere un Message Inspector per WCF. Qualcuno mi ha chiesto maggiori dettagli in merito, quindi ho pensato di scrivere da qui alle prossime settimane qualche post che spieghi le modalità di estensione di WCF.&lt;/p&gt; &lt;p&gt;In &lt;a href="http://weblogs.asp.net/paolopia/archive/2007/08/23/writing-a-wcf-message-inspector.aspx"&gt;questo post&lt;/a&gt; del mio blog in inglese spiego come creare un Message Inspector per avere accesso diretto al contenuto SOAP di un messaggio destinato ad un servizio WCF. Nei post successivi mi occuperò di altre tipologie di estensioni all'infrastruttura.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=17802" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category></item><item><title>Ricerche XPath su messaggi SOAP con WCF</title><link>http://blogs.devleap.com/paolo/archive/2007/05/30/ricerche-xpath-su-messaggi-soap-con-wcf.aspx</link><pubDate>Wed, 30 May 2007 00:55:30 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:17402</guid><dc:creator>paolo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=17402</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2007/05/30/ricerche-xpath-su-messaggi-soap-con-wcf.aspx#comments</comments><description>&lt;p&gt;A volte capita di avere bisogno di implementare servizi WCF che lavorino direttamente con il Message (System.ServiceModel.Channels.Message) a basso livello.&lt;/p&gt; &lt;p&gt;Ad esempio può servire per creare SOAP Router o SOAP Intermediaries. In questi casi le ricerche XPath sul messaggio SOAP devono avvenire usando anche i vari namespace di SOAP, WS-Security, WS-Addressing, ecc. a seconda dei casi.&lt;/p&gt; &lt;p&gt;In questi situazioni, al di là di utilizzare un XPathNavigator, o qualcosa di equivalente, sul messaggio XML diventa anche fondamentale avere un XmlNamespaceManager correttamente configurato per riconoscere i vari Namespace XML delle specifiche di cui sopra. Ebbene in WCF esiste già una classe pensata ad hoc. Si trova in System.ServiceModel.Dispatcher e si chiama XPathMessageContext.&lt;/p&gt; &lt;p&gt;Ecco come utilizzarla, ad esempio per estrarre il SOAP Body ("/s12:Envelope/s12:Body", dove s12 è il prefisso usato per SOAP 1.2) con tutto il suo contenuto:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;XmlNamespaceManager nsManager = new XPathMessageContext();&lt;br&gt;&lt;/strong&gt;XPathExpression soapBodyExpression = XPathExpression.Compile("/s12:Envelope/s12:Body", nsManager);  &lt;p&gt;XmlDocument xmlMessage = new XmlDocument();&lt;br&gt;xmlMessage.LoadXml(message.ToString());  &lt;p&gt;XPathNavigator messageNavigator = xmlMessage.CreateNavigator();&lt;br&gt;XPathNodeIterator messageBodyIterator = messageNavigator.Select(soapBodyExpression);&lt;br&gt;if (messageBodyIterator.Count &amp;gt; 0)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (messageBodyIterator.MoveNext())&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Scrive a Console il tag SOAP:Body e tutto il suo contenuto&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(messageBodyIterator.Current.OuterXml);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;} &lt;p&gt;N.B.: La classe deriva da XsltContext, quindi può risultare utile anche nelle trasformazioni XSLT dei messaggi SOAP.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=17402" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category></item><item><title>Validazione dei messaggi con WCF</title><link>http://blogs.devleap.com/paolo/archive/2007/05/14/validazione-dei-messaggi-con-wcf.aspx</link><pubDate>Mon, 14 May 2007 07:22:33 GMT</pubDate><guid isPermaLink="false">723bc1d7-e66b-4192-854d-44fd94d7f9a3:17314</guid><dc:creator>paolo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.devleap.com/paolo/rsscomments.aspx?PostID=17314</wfw:commentRss><comments>http://blogs.devleap.com/paolo/archive/2007/05/14/validazione-dei-messaggi-con-wcf.aspx#comments</comments><description>&lt;p&gt;Rimando ad un &lt;a href="http://blogs.msdn.com/martijnh/archive/2007/05/13/wcf-message-validation-1-wcf-samples-to-the-rescue.aspx"&gt;post&lt;/a&gt; interessante che illustra un'estensione WCF che può effettivamente risultare utile in alcune circostanze, permettendo di validare secondo XSD e WSDL i messaggi in entrata e/o uscita da servizi WCF. Notate anche i commenti in fondo al post, dove giustamente l'autore evidenzia il fatto che un'estensione come questa aiuta nell'approccio contract-first "puro" dove il riferimento è l'XSD e il WSDL e non il codice .NET.&lt;/p&gt;&lt;img src="http://blogs.devleap.com/aggbug.aspx?PostID=17314" width="1" height="1"&gt;</description><category domain="http://blogs.devleap.com/paolo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.devleap.com/paolo/archive/tags/Service+Oriented+Architecture/default.aspx">Service Oriented Architecture</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.devleap.com/paolo/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category></item></channel></rss>