【发布时间】:2013-09-01 01:29:58
【问题描述】:
我已经创建了我的第一个 WCF Web 服务,我正试图根据一些传递的参数从中返回一个图像。我收到错误消息:
响应消息的内容类型 image/jpeg 与绑定的内容类型(text/xml;charset=utf-8)不匹配。如果使用自定义编码器,请确保正确实现 IsContentTypeSupported 方法。
我需要做什么来解决这个问题?
调用该服务的网站的 web.config 文件具有以下配置:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IRestImageService" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:59473/RestImageService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IRestImageService"
contract="RestImageService.IRestImageService" name="BasicHttpBinding_IRestImageService" />
</client>
webservice web.config 如下所示:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true"/>
服务合同:
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "Image/{type}/{typeid}/{imageid}/{size}/{extension}",
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]
Stream Image(string type, string typeid, string imageid, string size = "lrg", string extension = "jpg");
我是 WCF 的新手,非常感谢任何帮助/指点!
更新 执行蒂姆的建议后,我收到一个新错误:
在 localhost:59473/RestImageService.svc 上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关详细信息,请参阅 InnerException(如果存在)。
我不确定如何配置 Web 服务来解决此问题。有什么建议吗?
这是我访问网络服务的方式:
RestImageServiceClient client = new RestImageServiceClient();
client.Image(WSC.Common.BO.User.User.ImageFolder.Buyer, "27085", "BuyerPhoto", "LRG", "jpg");
我希望能够在我的图片的 src 标签设置为 web 服务 url 一旦我得到它的工作。
【问题讨论】:
-
您使用的是 SOAP 还是 REST?
-
您的绑定协议不匹配。
-
@GrantThomas 我已经用谷歌搜索了,但我不确定如何使绑定协议匹配。可以指点一下吗?
-
@Tim 我正在尝试制作一个 RESTful 网络服务。
-
我将协议映射更改为
。结果相同
标签: c# asp.net wcf web-services