Отсутствует ошибка конечного тега, даже если она существует
У меня есть консольное приложение, которое отправляет полезную нагрузку XML в конечную точку SOAP. Я получаю ошибку ниже, когда пытаюсь отправить полезную нагрузку :
Log Written Date: 29/1/2020 1:23:59 PM Error Line No : ine 101 Error Message: SoapException Exception Type: System.Web.Services.Protocols.SoapException Error Location : Exception Caught during processing: The element type "SSC" must be terminated by the matching end-tag "</SSC>".
Это несмотря на то, что мой XML хорошо сформирован (по крайней мере, в коде).
Вот как я отправляю полезную нагрузку :
transactions = GetContracts(); try { StringBuilder sb = new StringBuilder(); sb.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sb.Append("<SSC>"); sb.Append("<User>"); sb.Append("<Name>" + Helpers.parameters.sscUser + "</Name>"); sb.Append("</User>"); sb.Append("</SunSystemsContext>"); sb.Append("<BusinessUnit>" + Convert.ToString(Helpers.parameters.busUnit) + "</BusinessUnit>"); sb.Append("<BudgetCode>" + Convert.ToString(Helpers.parameters.budgetCode) + "</BudgetCode>"); sb.Append("</SunSystemsContext>"); sb.Append("<Payload>"); foreach (Contracts contract in transactions) { sb.Append("<Ledger>"); sb.Append("<EntryPeriod>" + contract.Period + "</EntryPeriod>"); sb.Append("<TransactionAmount>" + contract.Amount + "</TransactionAmount>"); sb.Append("<AnalysisCode1>" + contract.CompanyCode + "</AnalysisCode1>"); sb.Append("</Ledger>"); } sb.Append("</Payload>"); sb.Append("</SSC>"); var inputPayload = sb.ToString(); if (authVoucher != null) { bool result = securityProvider.Validate(authVoucher); if (result == true) { //some logic here try { //execute routine and retrieve response to outresult string outresult = componentExecutor.Execute(authVoucher, "", ComponentName, ComponentMethod, "", inputPayload); } catch (Exception ex) { ExceptionLogging.SendErrorToText(ex); string outresult = ex.Message.ToString(); Console.WriteLine(outresult);
Что я уже пробовал:
Я вставил образец своей полезной нагрузки в онлайн-валидатор XML, и я получаю ошибку корневой элемент отсутствует.
Это кажется проблемой связанной с окружающей средой и из всех решений которые я искал мне не повезло :
1. Я проверил, что мой .пользователь файла не имеет значения
2. я проверил, что мой файл .csproj не пуст
3. Поиск линии
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />в файле .csproj, но его даже там нет. У меня есть предложение прокомментировать этот файл на каком-то форуме
3. переход C:\Users\<пользователь=""&ГТ;\документы\Visual студии &ЛТ;против версии=""&ГТ; резервное копирование\файлы\&ЛТ;проект="">, Чтобы проверить, если есть оба Восстановленный один Оригинал файлы. То, что я получаю, - это два набора файлов обоих типов
Original-May-18-2018-1209PM.<your project>.csproj Recovered-May-18-2018-1209PM.<your project>.csprojи как было предложено я переименовал его в Оригинал установите значение <my_project>.csproj, как было предложено
Я stii получаю ту же ошибку проверки XML, несмотря на эти изменения.
Что я упускаю?