1

我有一个 WCF 服务,它现在必须以这种编码发送数据:iso-8859-1。

我尝试更改 IIS 配置或在配置中添加全球化应答器,但服务的响应始终为 UTF-8。

有人可以帮助我吗?

谢谢。

4

2 回答 2

0

您不能在 WCF 中开箱即用地执行此操作。有关如何创建支持 ISO-8859-1 的自定义绑定的一些详细信息,请参阅此答案:https ://stackoverflow.com/a/1908154/2420979

于 2013-05-28T14:06:39.563 回答
0

我下载了框架 4.0 的 CustomTextMessageEncoder,我成功显示了 svc 页面,但我的所有调用都没有返回任何内容,并且 HELP 应答器不显示其余服务。

我还注意到,当我调用本地服务时,它会执行两次该方法而没有最终结果,但是如果我将绑定更改为 webHttpBinding,我会执行一次该方法并且它可以工作

这是我的配置:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="TestTheIso.Service1" behaviorConfiguration="ServiceBehaviour">
        <endpoint  binding="customBinding" bindingConfiguration="DefaultBinding"   contract="TestTheIso.IService1" behaviorConfiguration="toto">
        </endpoint>
      </service>
    </services>
    <bindings>
      <customBinding>
        <binding name="DefaultBinding">
          <customTextMessageEncoding encoding="ISO-8859-1" messageVersion="None" />
          <httpTransport manualAddressing="true"/>
        </binding>
      </customBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehaviour">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
        <behavior>
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="toto">
          <webHttp helpEnabled="true" automaticFormatSelectionEnabled="false" defaultOutgoingResponseFormat="Json" />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    <extensions>
      <bindingElementExtensions>
        <add name="customTextMessageEncoding"
             type="Microsoft.Samples.CustomTextMessageEncoder.CustomTextMessageEncodingElement, CustomTextMessageEncoder"/>
      </bindingElementExtensions>
    </extensions>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>
于 2013-06-05T08:51:39.317 回答