我使用WCF REST模板40(CS)创建了一个简单的REST服务,它运行得很好。只有一个问题是响应使用“application / json”作为内容类型,但我需要“text / plain”。
问题已在博文中解释,但由于模板我没有使用.svc文件。所以建议的解决方案对我不起作用。
我的服务合同:
[ServiceContract]
public interface ICouchService
{
[OperationContract]
[WebInvoke(ResponseFormat = WebMessageFormat.Json, UriTemplate = "/", Method = "GET")]
ServiceInformation Hello();
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json, UriTemplate = "/piclib/{id}")]
CouchDocument GetDocument(string id);
}
的web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
答案 0 :(得分:4)
如果要从WCF REST服务返回任意内容,则需要使用Raw编程模型 - http://blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model-web.aspx。您使用的模板使用服务路径定义端点,因此全部为您设置。现在,您需要定义返回Stream
参数的操作,并在操作中设置适当的内容类型:WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain";