Префикс пользовательского пространства имен ASP.NET ASMX WebServiceC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Префикс пользовательского пространства имен ASP.NET ASMX WebService

Сообщение Anonymous »

Мне нужно создать службу, способную получать сообщения SOAP и перенаправлять их в микрослужбу REST.
Отправителя сообщения нельзя изменить, но моя служба может (и я должен это сделать). догадайтесь):
Я решил создать веб-службу ASP.NET ASMX, потому что это казалось наиболее простым решением для обработки сообщений SOAP;
С учетом вышесказанного я столкнулся с конкретной проблемой во время моей разработки и мои исследования не могли помочь мне решить эту проблему (учтите, что я начал свою карьеру разработчика не более 5 лет назад, поэтому моих знаний о веб-сервисах SOAP в dotnet недостаточно):
Объект, который я получу, будет иметь следующую структуру: Веб-сервис, который я написал до сих пор, не сильно отличается от того, что генерирует VisualStudio при добавлении нового asmx-файла (для полноты я сообщу об этом):

Код: Выделить всё

namespace ASMXWebService
{
/// 
/// Summary description for ProxySOAP
/// 
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class ASMXWebService : WebService
{
[WebMethod]
public string EndpointRelatedFunction(object data)
{
return "Hello World";
}
}
}
Эта часть кода генерирует точку соединения следующим образом: Моя проблема в том, что когда я пытаюсь отправить объект, который должна будет получить эта служба (я использую почтальон), я получаю сообщение «500 Внутренняя ошибка сервера» со следующей ошибкой сообщение:

Код: Выделить всё

soap:VersionMismatchSystem.Web.Services.Protocols.SoapException: Possible SOAP version mismatch:
Envelope namespace  was
unexpected. Expecting http://schemas.xmlsoap.org/soap/envelope/. at
System.Web.Services.Protocols.SoapServerProtocol.CheckHelperVersion() at
System.Web.Services.Protocols.SoapServerProtocol.Initialize() at
System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context,
HttpRequest request, HttpResponse response, Boolean& abortProcessing)
Думаю, мне следует добавить что-нибудь поверх
'public class ASMXWebService: WebService'
но я понятия не имею, что это будет за решение.
Решение этой проблемы может решить другие мои проблемы (я думаю, это будут мои следующие проблемы), а именно:
  • Как определить эти пространства имен с настраиваемыми префиксами? (например, «:a» или «:ns1») в коде asmx?
  • Каким может быть значение xmlns:ns1 в таком странном формате? (Я ожидаю, что в качестве значения пространства имен будут только пути).
Я готов переопределить всю структуру моего сервиса (что угодно, кроме использования WCF, если это лучший способ, скажите мне, почему и покажите мне, пожалуйста).

Подробнее здесь: https://stackoverflow.com/questions/793 ... ace-prefix
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»