Этот тест использует RestSharp для генерации URL. Приведенная ниже функция записывает другой URL-адрес в тестовый файл в зависимости от того, вызывается ли он в C#. NET настольном консольном приложении или если он вызывается в веб-службе C#. NET SOAP, работающей в IIS. Оба теста были запущены на одном сервере Windows 2012 R2. URL-адрес должен заканчиваться точкой, но при запуске в веб-службе последний символ URL-адреса теряется.
private static void TestCreateUri()
{
var client = new RestClient("https://testing/one/two/three");
client.Authenticator = new HttpBasicAuthenticator("giberish", "nonsense");
var request = new RestRequest("thing/{thing_id}", Method.DELETE);
request.AddHeader("account-number", "1234567890");
request.AddUrlSegment("thing_id", "pOIK0E3nqXIAAAFvsIYzK8o.");
var uri = client.BuildUri(request);
File.WriteAllText(@"c:\temp\test.txt", uri.ToString());
}
При запуске с рабочего стола это записывается в файл: https://testing/one/two/three/thing/pOIK0E3nqXIAAAFvsIYzK8o.
При запуске в веб-сервисе конечный период теряется и записывается в файл: https://testing/one/two/three/thing/pOIK0E3nqXIAAAFvsIYzK8o
RestSharp версия 106.10.1, последняя стабильная версия, когда я пишу этот вопрос. . NET версия 4.7.
Похоже, это происходит только тогда, когда последний добавляемый символ в UrlSegment является точкой. Я не пробовал все возможные другие символы, но из всех, что я тестировал, эта проблема возникает только в течение определенного периода.
Такое поведение наблюдается на двух разных серверах Windows 2012 R2.
I необходимо вызвать веб-службу REST из веб-службы SOAP. Что я могу сделать, чтобы URL был создан правильно?