2012-03-29 1 views
0

Es gibt einen WCF REST-Dienst in Windows-Dienst oder in der Befehlszeile ausführbare Datei gehostet ist. Ich möchte den Standard-DataContractJsonSerializer mit JSON.NET Serializer ersetzen.JSON.NET Serializer für WCF-Dienst gehostet in Windows-Dienst oder Befehlszeile ausführbare

Es gibt eine ähnliche Frage mit einem kleinen Unterschied, dass es IIS verwendet: How to set Json.Net as the default serializer for WCF REST service.

-Code vorgeschlagen, es funktioniert nicht, wenn außerhalb des IIS gehostet. Es wirft die folgende Ausnahme: ‚ServiceHostingEnvironment.EnsureServiceAvailable‘ kann nicht innerhalb der aktuellen Hosting-Umgebung aufgerufen werden. Diese API erfordert, dass die aufrufende Anwendung in IIS oder WAS gehostet wird.

Jede Idee?

Antwort

2

Dieser Code sollte funktionieren; Entfernen Sie einfach das Attribut [AspNetCompatibilityRequirements] aus dem Dienst, da es nicht wirklich für selbst gehostete Dienste gilt. Sie können auch einen benutzerdefinierten Nachrichtenformatierer verwenden, um den Serializer zu ersetzen, wie unter http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/03/wcf-extensibility-message-formatters.aspx beschrieben.

+0

Danke für die Beantwortung. Ich habe es für den Moment aufgegeben und werde für eine Weile mit dem DataContractJsonSerializer gehen. Ich werde Ihre Antwort akzeptieren, da es logisch klingt und ich werde es später überprüfen. –