Я пытаюсь использовать службу отдыха, которая поддерживает тип метода операции PUT. И я пытаюсь это сделать, используя статический порт отправки BizTalk WCF-WebHttp. Но всегда он возвращает ошибку как
System.Net.WebException: The remote server returned an unexpected response: (405) MethodNotAllowed.
Не понимаю, что я делаю неправильно или я что-то пропустил.
Я попытался использовать ту же службу отдыха с помощью Postman, и она работает.
Также я попытался использовать службу с использованием динамических портов BizTalk, и она работает.
Я настроил «Метод HTTP и сопоставление URL-адресов», как показано ниже:
<BtsHttpUrlMapping><Operation Method = "PUT" /></BtsHttpUrlMapping>
Security Mode : None
Content-Type: application/json
Я хочу, чтобы это работало со статическим портом отправки BizTalk с использованием адаптера WCF-Webhttp.
вы уверены, что ваш код использует put?
Попытался отслеживать вызов службы с помощью скрипача и заметил, что метод, переданный для вызова службы, - «POST». Итак, теперь он уверен, что конфигурация для PUT на уровне порта не отражается в вызове службы.
Теперь, когда вы определили проблему с конфигурацией клиента, решили ли вы ее? Если вы это сделаете, поделитесь с нами своим решением и отметьте его как ответ, чтобы помочь им решить аналогичную проблему. на мой взгляд, может быть что-то не так с конфигурацией адаптера WCF-webhttp.





В вашем «HTTP-методе и сопоставлении URL-адресов» вам нужно либо просто
PUT
или
<BtsHttpUrlMapping><Operation Name = "OpName" Method = "PUT" /></BtsHttpUrlMapping>
где OpName соответствует свойству контекста операции в сообщении.
Вы также должны указать глагол и тип содержимого на вкладке «Сообщение», если они не упомянуты.

Вам нужно только упомянуть глагол GET, если вы планируете выполнить GET и хотите подавить тело сообщения, в противном случае это не имеет отношения к проблеме.
HTTP-метод и сопоставление URL-адресов: "<BtsHttpUrlMapping><Operation Method = "PUT" /></BtsHttpUrlMapping>"