.NET Core 2.2: как использовать WSDL для справки WCF - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть старая (кажется) служба ASMX, и мне нужно использовать ее для .NET Core 2.2.Во-первых, когда я пытаюсь добавить его в качестве службы WCF, у меня появляется ошибка, когда я пытаюсь использовать:

InvalidOperationException: The top XML element 'data' from namespace '' references distinct types ServiceReference1.WSIssueNewPayrollCardData and ServiceReference1.WSIssueNewPersonalizedPayrollCardData. Use XML attributes to specify another XML name or namespace for the element or types.
System.Xml.Serialization.XmlReflectionImporter.ReconcileAccessor(Accessor accessor, NameTable accessors)

InvalidOperationException: There was an error reflecting 'data'.
System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers, string ns, bool hasWrapperElement, bool rpc, bool openModel, RecursionLimiter limiter)

ок, перейти к определению WSIssueNewPayrollCardData и добавить пространство имен для каждого открытого свойства, котороеуже имеет то же имя:

[System.CodeDom.Compiler.GeneratedCodeAttribute("dotnet-svcutil", "1.0.0.1")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://com.tch.cards.service/types")]
public partial class WSIssueNewPayrollCardData
{

    private string shipToFirstField;

    private string shipToLastField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0, Namespace = "http://com.tch.cards.service/types/WSIssueNewPayrollCardData")]
    public string shipToFirst
    {
        get
        {
            return this.shipToFirstField;
        }
        set
        {
            this.shipToFirstField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1, Namespace = "http://com.tch.cards.service/types/WSIssueNewPayrollCardData")]
    public string shipToLast
    {
        get
        {
            return this.shipToLastField;
        }
        set
        {
            this.shipToLastField = value;
        }
    }

    /// <remarks/>

}

, затем запустите его.Но я сталкиваюсь лицом к лицу с другой проблемой:

InvalidOperationException: свойство Form не может быть «неквалифицированным», если присутствует явное свойство Namespace.System.Xml.Serialization.XmlReflectionImporter.CheckForm (форма XmlSchemaForm, bool isQualified)

InvalidOperationException: при отражении свойства 'shipToFirst' произошла ошибка.System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers (отображение StructMapping, модель StructModel, bool openModel, ограничитель типа stringName, RecursionLimiter)

InvalidOperationException: возникла ошибка, отражающая тип 'ServiceReard1.ataCue. WSI.System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping (модель TypeModel, строка ns, контекст ImportContext, строка dataType, XmlAttributes a, повторения bool, ограничитель bool openModel, ограничитель RecursionLimiter)

ошибка недопустимого отражения данных: InvalidOperationException:,System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping (XmlReflectionMember [] xmlReflectionMembers, строка ns, bool hasWrapperElement, bool rpc, bool openModel, ограничитель RecursionLimiter)

* 1019 как использовать1020 *

1 Ответ

0 голосов
/ 22 февраля 2019

Я также пытался добавить конечную точку SOAP в .NET CORE SOLUTION ... и это никогда не срабатывало ... Я где-то читал, что .NET CORE НЕ ПОДДЕРЖИВАЕТ WCF, исходя из конкретной идеи, лежащей в основе .NET CORE FRAMEWORK...

I 've resolved by add an .NET STANDARD external project (as DLL) to my API Project и в этом я на него ссылаюсь ...

[1] [2]

Я не знаю id тамлучшее решение .. Я надеюсь, что так ..

Надеюсь, это поможет вам !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...