Windows Service或命令行可执行文件中托管了WCF REST服务。我想用JSON.NET序列化程序替换默认的DataContractJsonSerializer。
有一个类似的问题,但有一点不同,它使用IIS:How to set Json.Net as the default serializer for WCF REST service。
建议的代码在IIS外部托管时不起作用。 它抛出以下异常: 'ServiceHostingEnvironment.EnsureServiceAvailable'无法在当前托管环境中调用。此API要求将调用应用程序托管在IIS或WAS中。
有什么想法吗?
答案 0 :(得分:2)
该代码应该有效;只需从服务中删除[AspNetCompatibilityRequirements]
属性,因为它并不真正适用于自托管服务。您还可以使用自定义消息格式化程序来替换序列化程序,如http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/03/wcf-extensibility-message-formatters.aspx。