Расширение BizTalk WCF-Custom Behavior Extension не отображается

Я сделал следующее расширение поведения:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel.Configuration;
using System.ServiceModel.Description;
using System.ServiceModel.Discovery;

namespace Residence.WCFEndpointBehavior
{
    namespace Residence.WCFEndpointBehavior
    {
        public class MustUnderstandValidationOffElement : BehaviorExtensionElement
        {
            protected override object CreateBehavior()
            {
                return new MustUnderstandBehavior(false);
            }

            public override Type BehaviorType
            {
                get
                {
                    return typeof(MustUnderstandBehavior);
                }
            }
        }
    }
}

Полученное имя сборки - MustUnderstandValidationOffElement.

Версия 1.1.0.0

Ставлю сборку в GAC.

GacUtil /lr MustUnderstandValidationOffElement

возвращается

MustUnderstandValidationOffElement, версия = 1.1.0.0, культура = нейтральная, PublicKeyToken = 5f1263db97cf42d0, processorArchitecture = MSIL

В BizTalk 2013 R2 я открываю адаптер WCF-Custom для соответствующего имени хоста и импортирую:

<configuration>
<system.serviceModel>
<extensions>
<behaviorExtensions>
  <add name="mustUnderstandValidationOffElement" type="Residence.WCFEndpointBehavior.MustUnderstandValidationOffElement, MustUnderstandValidationOffElement, Version=1.1.0.0, Culture=neutral, PublicKeyToken=5f1263db97cf42d0"/>
</behaviorExtensions>
</extensions>
</system.serviceModel>
</configuration>

в свойствах транспорта WCF-Custom.

Затем я перезапускаю экземпляр хоста хоста.

Я закрываю консоль администрирования BizTalk Server и снова открываю ее.

Затем я открываю свойства для SendPort с помощью адаптера WCF-Custom на хосте: ›Нажмите кнопку« Настроить »и выберите« Привязки ». Я щелкаю правой кнопкой мыши EndpointBehavior и выбираю Добавить расширение.

Увы, мой mustUnderstandValidationOffElement не отображается в списке.

Любая помощь приветствуется!


person Birger Niss    schedule 14.11.2020    source источник
comment
Для этого вам нужно добавить записи в файлы machine.config.   -  person Dijkgraaf    schedule 15.11.2020
comment
Помещение его в файлы machine.config изменит поведение всех адаптеров WCF-Custom. Насколько я понимаю, BizTalk 2013 поддерживает его именно по этой причине.   -  person Birger Niss    schedule 15.11.2020
comment
azurebiztalkread.wordpress.com/2019 23/03 /   -  person Dijkgraaf    schedule 17.11.2020
comment
Спасибо, Дийкграаф! Видел это уже - но безрезультатно.   -  person Birger Niss    schedule 17.11.2020
comment
Добавление его в machine.config не должно изменять поведение всех адаптеров WCF-Custom, а только тех, для которых вы выбрали его в разделе «Поведение конечной точки» для этого порта. Исключение: ваш код делает что-то, что меняет поведение всего, что работает в этом контексте, например Установка версии TLS ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 Этого можно избежать, запустив этот порт в отдельном экземпляре хоста, отличном от тех, на которые вы не хотите влиять.   -  person Dijkgraaf    schedule 18.11.2020
comment
Получите свою точку зрения Dijkgraaf - изменяются только порты, для которых выбрано поведение конечной точки. Виноват. Я попробовал ваше предложение и добавил записи во все 4 machine.configs, перезагрузил сервер, но все равно не повезло. Поведение по-прежнему отсутствовало в списке.   -  person Birger Niss    schedule 18.11.2020
comment
Обычно это происходит, если имя, версия сборки или ключ строгого имени не совпадают. Дважды проверьте их.   -  person Dijkgraaf    schedule 18.11.2020
comment
Возникла точная проблема ... но ваш ответ ко мне не относится. BizTalk 2020?   -  person JERKER    schedule 10.12.2020


Ответы (1)


Спасибо Dijkgraaf за то, что направил меня к решению. После создания нового конкретного ключа строгого имени для подписи моего поведения конечной точки он появился в списке «Добавить расширение»!

Он работал без настройки файла machine.config.

НО Добавление этого поведения в порт отправки НЕ предотвратило отправку mustUnderstand = 1 на удаленный сервер. Вместо этого, похоже, наш сервер Biztalk игнорирует любой mustUnderstand = 1, то есть совершенно противоположное тому, что нам нужно.

person Birger Niss    schedule 18.11.2020