Ho un'applicazione funzionante che utilizza Json.NET (newtonsoft) come serializzatore personalizzato. Attualmente sto aggiungendo questo derivato di WebHttpBehavior in un WebServiceHostFactory personalizzato. Vedi lo snippet di codice alla fine di this blog per come l'ho allegato.Custom Behavior non si registrerà nel mio web.config
Poiché sto ospitando questo servizio in IIS, vorrei liberarmi del mio codice di hosting personalizzato e aggiungere semplicemente il comportamento personalizzato al mio web.config. La procedura è mostrata in questo msdn article.
così cerco di farlo in questo modo:
<behaviors>
<endpointBehaviors>
<behavior name="jsonRest">
<webHttp defaultOutgoingResponseFormat="Json" />
<NewtonsoftJsonBehavior/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name="NewtonsoftJsonBehavior" type="Newtonsoft.Json.Extensions.NewtonsoftJsonBehavior, NewtonsoftJsonExtensions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
Purtroppo, io sono in grado di fare quel lavoro. Quando lo faccio, Visual Studio mi dice che
L'elemento 'comportamento' ha valida elemento figlio 'NewtonsoftJsonBehavior'
Nel afforementioned msdn article, si dice che
Per aggiungere capacità di configurazione dell'elemento, è necessario scrivere e registrare un elemento di configurazione. Per ulteriori informazioni, consultare la documentazione System.Configuration.
Dopo aver definito l'elemento e il tipo di configurazione, è possibile utilizzare l'estensione, come mostrato nell'esempio seguente.
Ho la sensazione che quello che mi manca è esattamente questo. In qualche modo registrando l'elemento e il suo tipo di configurazione. Purtroppo non posso creare teste o code dello System.Configuration che dovrebbe dirmi come fare questo. Quindi questa è fondamentalmente la mia domanda:
Come scrivere e registrare l'elemento di configurazione e, se questo non è il mio problema, qual è il problema?
Molte grazie in anticipo!
Proverò il svcconfigeditor per prima cosa domani e riferirò. Per quanto riguarda l'altra parte, quando provo a eseguire la mia app, la chiamata al servizio mostra il mio web.config nel browser ed evidenzia il tag personalizzato come la ragione per cui il servizio non può essere eseguito. Non riesco a ricordare il messaggio esatto, ma posso postare anche domani, se ciò sarà di aiuto. – Mithon
Aggiungo una mia risposta, ma ho aumentato la tua da quando mi ha indicato SvcConfigEditor mi ha aiutato a rintracciare ciò che dovevo fare. – Mithon