【问题标题】:Getting Error (405) "MethodNotAllowed" when calling a web service with "PUT" method from Biztalk WCF-WebHttp adapter in send port使用发送端口中的 Biztalk WCF-WebHttp 适配器的“PUT”方法调用 Web 服务时出现错误(405)“MethodNotAllowed”
【发布时间】:2019-10-26 19:08:39
【问题描述】:

我正在尝试使用支持 PUT 操作方法类型的休息服务。 我正在尝试使用 BizTalk WCF-WebHttp 静态发送端口。 但总是返回错误为

System.Net.WebException:远程服务器返回意外响应:(405) MethodNotAllowed。

没有得到我做错了什么或者我错过了什么。

我尝试使用 Postman 使用相同的休息服务,它正在工作。

我还尝试使用 BizTalk 动态端口使用该服务,它可以工作。

我已经配置了“HTTP 方法和 URL 映射”如下:

<BtsHttpUrlMapping><Operation Method = "PUT" /></BtsHttpUrlMapping>
Security Mode : None
Content-Type: application/json

我希望它与使用 WCF-Webhttp 适配器的静态 BizTalk 发送端口一起使用。

【问题讨论】:

  • HTTP 方法和 URL 映射:""
  • 你确定你的代码使用了put吗?
  • 尝试使用 fiddler 监控服务调用,注意到传递给服务调用的方法是“POST”。所以,现在可以确定端口级别的 PUT 配置没有反映在服务调用中
  • 既然您已经确定了客户端配置问题,那么您解决问题了吗?如果您这样做,请与我们分享您的解决方案并将其标记为答案,以便帮助他们解决类似问题。在我看来,WCF-webhttp 适配器配置可能有问题。

标签: c# wcf biztalk


【解决方案1】:

在“HTTP 方法和 URL 映射”中,您要么只需要

PUT

<BtsHttpUrlMapping><Operation Name="OpName" Method = "PUT" /></BtsHttpUrlMapping>

其中 OpName 与消息上的 Operation 上下文属性匹配。

【讨论】:

    【解决方案2】:

    如果未提及,您还必须在“消息”选项卡中提及动词和内容类型。

    【讨论】:

    • 如果你打算做一个 GET 并且想要抑制消息体,你只需要提到动词 GET,否则这与问题无关
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    相关资源
    最近更新 更多