Я использую wsdl, описанный как:
<wsdl:binding name="PassengerConformance_v1Binding"
type="tns:PassengerConformanceAuthenticationPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="identify">
</wsdl:operation>
</wsdl:binding>
Но генерируемый запрос - это UTF16, которым сервер хочет быть utf-8. Так выглядит мой код
var binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport)
{
Security = new BasicHttpSecurity
{
Mode = BasicHttpSecurityMode.Transport,
Transport = new HttpTransportSecurity
{
ClientCredentialType = HttpClientCredentialType.Digest
}
}
};
var address = new EndpointAddress(dcsServiceConfiguration.Url);
var channel = new ChannelFactory<T>(binding, address);
channel.Credentials.HttpDigest.ClientCredential =
new NetworkCredential(username, Password);
var buildDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var filePath = buildDir + @"\ClientCert.pfx";
channel.Credentials.ClientCertificate.Certificate =
new X509Certificate2(filePath, "password", X509KeyStorageFlags.MachineKeySet);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
return channel;
Я понимаю, что значение textEncoding BasicHttpBinding по умолчанию - utf-8, но все же, когда я проверяю инспектор сообщений, оно становится utf-16.
Я заметил, что когда я реплицировал этот код в .net 7.2фреймворковое консольное приложение, тега xml не было.который все еще работает для меня, пожалуйста, помогите.