如何在Windows应用商店应用中使用WCF时禁用Expect:100-Continue

时间:2014-02-28 08:42:36

标签: c# wcf

在Windows Store App中使用WCF与WebService进行通信时,我需要删除HTTP消息中的Expect: 100-Continue标头。 我找到了很多解决方案,但在Windows 8中没有一个是可能的:

    商店应用中不再存在
  1. ServicePoint.Expect100Continue = false;(无SericePointServicePointManager类),
  2. 我无法更改web.config文件中的配置,因为它在Store App中不存在,
  3. 可以更改HttpClient中的标记,但在使用WCF时无法访问它,
  4. 我尝试使用IClientMessageInspector操纵邮件标头,但是稍后会在较高层中添加默认的HTTP标头,因此我的更改将是ovverriden。
  5. 有没有人有其他想法?

1 个答案:

答案 0 :(得分:3)

有两种方法可以解决这个问题。

您可以在app.config或web.config中设置expect100Continue =“false”,但这将是全局。如果某些外部服务更喜欢使用标头expect100Continue,这可能是一个问题。方法如下:

<system.net>
     <settings>
        <servicePointManager expect100Continue="false"/>  
     </settings>
</system.net>

或者您可以在代码中为特定端点执行此操作,如下所示:

System.Net.ServicePoint servicePoint =
     System.Net.ServicePointManager.FindServicePoint(myWcfService.Endpoint.Address.Uri);
servicePoint.Expect100Continue = false;
// now execute some service operation