Home  |   Chi siamo  |   Soluzioni  |   Consulenza  |   Formazione  |   Clienti  |   Blog  |   Contatti  |  
 
Home      Blog      Il blog 
 

Blog

  • Il blog
 

 

Cerca


Calendario

<<  luglio 2010  >>
dolumamegivesa
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567


Blog

Code Architects - Sottoscrivi il nostro rss feed  blog RSS

'system.serviceModel/bindings/netTcpRelayBinding' could not be found

clock giugno 2, 2010 05.04 di author Giuseppe Dimauro

Usando il Windows Azure Service Bus con .NET 4.0 potreste incorrere in questo errore:

Configuration binding extension 'system.serviceModel/bindings/netTcpRelayBinding' could not be found.

Il messaggio completo è il seguente:

Configuration binding extension 'system.serviceModel/bindings/netTcpRelayBinding' could not be found. Verify that this binding extension is properly registered in system.serviceModel/extensions/bindingExtensions and that it is spelled correctly. (c:\users\gdimauro\documents\visual studio 2010\Projects\CloudService4\EchoService\bin\Debug\EchoService.vshost.exe.Config line 5)

Come risolverlo ? Semplicemente aggiungendo le parti evidenziate di seguito nel file “C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config” :

            <behaviorExtensions>
                <add name="persistenceProvider" type="System.ServiceModel.Configuration.PersistenceProviderElement, System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="workflowRuntime" type="System.ServiceModel.Configuration.WorkflowRuntimeElement, System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="enableWebScript" type="System.ServiceModel.Configuration.WebScriptEnablingElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="webHttp" type="System.ServiceModel.Configuration.WebHttpElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="serviceDiscovery" type="System.ServiceModel.Discovery.Configuration.ServiceDiscoveryElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="endpointDiscovery" type="System.ServiceModel.Discovery.Configuration.EndpointDiscoveryElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="etwTracking" type="System.ServiceModel.Activities.Configuration.EtwTrackingBehaviorElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="routing" type="System.ServiceModel.Routing.Configuration.RoutingExtensionElement, System.ServiceModel.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="soapProcessing" type="System.ServiceModel.Routing.Configuration.SoapProcessingExtensionElement, System.ServiceModel.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="workflowIdle" type="System.ServiceModel.Activities.Configuration.WorkflowIdleElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="workflowUnhandledException" type="System.ServiceModel.Activities.Configuration.WorkflowUnhandledExceptionElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="bufferedReceive" type="System.ServiceModel.Activities.Configuration.BufferedReceiveElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="sendMessageChannelCache" type="System.ServiceModel.Activities.Configuration.SendMessageChannelCacheElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="sqlWorkflowInstanceStore" type="System.ServiceModel.Activities.Configuration.SqlWorkflowInstanceStoreElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="workflowInstanceManagement" type="System.ServiceModel.Activities.Configuration.WorkflowInstanceManagementElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="connectionStatusBehavior" type="Microsoft.ServiceBus.Configuration.ConnectionStatusElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="transportClientEndpointBehavior" type="Microsoft.ServiceBus.Configuration.TransportClientEndpointBehaviorElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </behaviorExtensions>            <bindingElementExtensions>
                <add name="webMessageEncoding" type="System.ServiceModel.Configuration.WebMessageEncodingElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="context" type="System.ServiceModel.Configuration.ContextBindingElementExtensionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add name="byteStreamMessageEncoding" type="System.ServiceModel.Configuration.ByteStreamMessageEncodingElement, System.ServiceModel.Channels, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="discoveryClient" type="System.ServiceModel.Discovery.Configuration.DiscoveryClientElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="tcpRelayTransport" type="Microsoft.ServiceBus.Configuration.TcpRelayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="httpRelayTransport" type="Microsoft.ServiceBus.Configuration.HttpRelayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="httpsRelayTransport" type="Microsoft.ServiceBus.Configuration.HttpsRelayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="onewayRelayTransport" type="Microsoft.ServiceBus.Configuration.RelayedOnewayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </bindingElementExtensions>            <bindingExtensions>
                <add name="wsHttpContextBinding" type="System.ServiceModel.Configuration.WSHttpContextBindingCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add name="netTcpContextBinding" type="System.ServiceModel.Configuration.NetTcpContextBindingCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add name="webHttpBinding" type="System.ServiceModel.Configuration.WebHttpBindingCollectionElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="basicHttpContextBinding" type="System.ServiceModel.Configuration.BasicHttpContextBindingCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add name="basicHttpRelayBinding" type="Microsoft.ServiceBus.Configuration.BasicHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="webHttpRelayBinding" type="Microsoft.ServiceBus.Configuration.WebHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="ws2007HttpRelayBinding" type="Microsoft.ServiceBus.Configuration.WS2007HttpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="netTcpRelayBinding" type="Microsoft.ServiceBus.Configuration.NetTcpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="netOnewayRelayBinding" type="Microsoft.ServiceBus.Configuration.NetOnewayRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="netEventRelayBinding" type="Microsoft.ServiceBus.Configuration.NetEventRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </bindingExtensions>

Giuseppe



Introduzione alla claims-based security

clock maggio 31, 2010 08.45 di author Admin

Alcune ottime risorse per iniziare con la claims-based security. Il libro elettronico scritto, fra gli altri, da Vittorio Bertocci e gli esempi scaricabili direttamente dal sito di Microsoft coprono i casi piú importanti come:

  1. Web Single Sign On
  2. Web Single Sign On su Azure
  3. Federazione
  4. Federazione con partner multipli e web service
    

Gli esempi del libro: http://www.microsoft.com/downloads/details.aspx?familyid=33829BCF-F5EA-4650-B807-57C63A753753&displaylang=en

Il libro elettronico:  http://www.microsoft.com/downloads/details.aspx?familyid=4C09FFE4-43DD-4FCC-BE35-C897C9BC4386&displaylang=en

 

Giuseppe



Effettuare debug di una template T4

clock maggio 28, 2010 21.30 di author Giuseppe Dimauro
Per chi come noi utilizza in Visual Studio template T4 per generare automaticamente codice sorgente e si ritrova a creare o modificare template giá pronte (nel nostro caso template oggetti Entity Framework POCO) ma ha bisogno di una mano nel debugging di complesse sequenze di codice T4 bastano poche accorteze per riuscirci. Basta cambiare la proprietá debug del prima riga del template da false a true per garantirsi la visione/ispezione dei sorgenti durante il debug:

<#@ template language="C#" debug="true" hostspecific="true"#>

il passo successivo è inserire una istruzione di Break del debugger nel punto interessato:

<#System.Diagnostics.Debugger.Break();#>

Prima di eseguire (anche solo salvando) il template è necessario effettuare un attach della sessione corrente di Visual Studio da un'altra istanza di Visual Studio. In caso contrario Visual Studio andrá in errore chiudendosi "malamente" costringendovi a ricaricarlo. Ovviamente risulterá essere particolarmente noioso se oltre al template al momento dell'errore avete altri sorgenti non salvati in sessione perché andranno irrimediabilmente perduti ...

Per evitare noie di questo tipo e per garantirsi che il BreakPoint venga raggiunto soltanto nel caso in cui Visual Studio sia stato effettivamente "agganciato" é possibile cambiare lo statement precedente nel seguente:

<# if(System.Diagnostics.Debugger.IsAttached) /*break only if attached =DG=*/ System.Diagnostics.Debugger.Break();#> 

Ho provato il tutto con VS2010 ma sono certo che vada bene anche con VS2008 

Giuseppe

 



Rule Editor per Windows Worfklow Foundation e Biztalk Server

clock marzo 2, 2008 16.58 di author Giuseppe Dimauro

In questi ultimi mesi sto "pasticciando" parecchio con Windows Workflow Foundation in modo molto spinto. Tra le varie feature che sto sfruttando ed implementando con estrema soddisfazione vi è la gestione delle regole attraverso le feature "built-in" di WWF. Giusto per capire di cosa stiamo parlando datevi una lettura qui: http://msdn2.microsoft.com/en-us/library/aa480193.asp

Inoltre L'ottimo esempio di utilizzo delle regole attingendo ad un proprio database esterno anzicchè ai file di risorse con estensioni ".rules" chiude egregiamente il cerchio. Lo trovate qui: http://wf.netfx3.com/files/folders/rules_samples/entry309.aspx



Tra l'altro l'esempio mostra come sfruttare alcune dialog box di edit delle regole direttamente dal proprio codice senza passare per Visual Studio. Le finestre di edit delle regole sono potenti e abbastanza complete ma pur sempre molto developer oriented. Per questa ragione mi sono messo al lavoro e ho iniziato a scrivermi qualcosa di custom fino a quando, cercando delle risorse su internet per effettuare il parsing di regole
 in stringhe, mi sono imbattuto nel tool della Acumen (http://www.acumenbusiness.com/Products.htm ). La grafica e la qualità del prodotto è impressionante. Tra le varie feature veramente interessanti troviamo:
- editor grafico assistito di regole di business
- simulazione delle regole con grafica animata
- verifica completezza delle regole inserite
- export delle regole verso biztalk e Windows Workflow Foundation
 ... e molte altre feature

Ecco una screenshot dell'editor con navigatore/simulatore animato:



Le regole vengono esportate come ".rules" e con lo stesso codice di esempio dell'external ruleset toolkit possono essere gestite direttamente dall'interno della propria applicazione dinamicamente.

Giuseppe 


DinnerNow.Net su CodePlex per VS 2008 RTM

clock febbraio 10, 2008 06.46 di author Giuseppe Dimauro

DinnerNow è un ottimo esempio didattico che uso in molte conferenze e corsi per spiegare tecnologie come LINQ to SQL, integrazione WF/WCF ecc.
Finalmente la versione consolidata per la versione finale di VS2008 è disponibile al link:

http://www.codeplex.com/DinnerNow/Release/ProjectReleases.aspx?ReleaseId=10572

 è stata testata su Vista (compresa la SP1) e Windows Server 2008 RTM. Inoltre molti hands-on lab sono disponibili in un apposito training kit a questo indirizzo:

http://www.microsoft.com/downloads/details.aspx?familyid=8BDAA836-0BBA-4393-94DB-6C3C4A0C98A1&displaylang=en

 



 

© Code Architects S.r.l. P.Iva 05831090724
Home  |   Chi siamo  |   Soluzioni  |   Consulenza  |   Formazione  |   Clienti  |   Blog  |   Contatti