Я пытаюсь отключить SoapProcessing для конечной точки (да, это должно быть сделано, не спрашивайте, почему, и контролеры сообщение не будет работать):Как установить SoapProcessing с помощью кода
Однако вся документация, которую я нашел, полагается на установку этого значения в файле конфигурации приложения. Я занимаюсь разработкой плагин для приложения, которое не позволяет мне включать отдельный конфигурационный файл, так что я должен установить конечную точку и привязки, и все, что с помощью кода:
// Create transport binding
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential);
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
// Create client
MySyncPortClient _service = new MySyncPortClient(binding, new EndpointAddress("https://path/to/service"));
_service.ClientCredentials.UserName.UserName = "foo";
_service.ClientCredentials.UserName.Password = "bar";
// Set custom bindings
BindingElementCollection elements = _service.Endpoint.Binding.CreateBindingElements();
elements.Find<SecurityBindingElement>().IncludeTimestamp = false;
_service.Endpoint.Binding = new CustomBinding(elements);
// Perform a request
_service.DoSomething();
Если кто-то может мне точку в вправо, я был бы признателен. И не быть грубым, но, пожалуйста, не предлагайте использовать файл конфигурации. Это -NEEDS- выполняется через код. Если вы хотите получить полное объяснение, я могу предоставить его отдельно.
Я понимаю, почему вы не можете сделать это в конфигурационном файле подключаемого модуля, но вы исключаете внесение изменений в файл конфигурации приложения, в который подключается подключаемый модуль? –
К сожалению, да. – jhilgeman
Хорошо, но делать это в конфигурационном файле вызывающего абонента - это то, что позволяет разные конфигурации для каждого вызывающего. Ваши абоненты не смогут изменить конфигурацию. –