5

Ich versuche, alle Service-Endpunkt mexHttpBinding Knoten in meinem Web.Release.config Datei zu entfernen.

I found this answer:
(ich von meinem Code-Datei kopiert, so dass es tatsächlich anders als die Antwort formatiert)Warum erhalte ich das erforderliche Attribut "Name" fehlt Warnung in meiner Web.Release.config XML-Document-Transform-Datei?

<services> 
    <service> 

     <endpoint binding="mexHttpBinding" 
        xdt:Locator="Match(binding)" 
        xdt:Transform="RemoveAll" /> 

    </service> 
</services> 


Die Warnung Ich erhalte auf die <service> Knoten:

Das erforderliche Attribut 'name' fehlt.


Benötige ich einen leeren String oder Wildcard hinzufügen zum name Attribute des Knotens <service> (falls vorhanden), diese Warnung zu lösen?

Auch sollte die obige Transformation nicht mit dem Knoten oder Nein gewickelt werden?

+0

Sie müssen ihm den Namen geben, den Sie in web.config haben, damit er weiß, von welchem ​​Dienst er entfernt werden soll. – artm

+0

Ich habe nichts im Web gesehen, das suggeriert, dass dies eine gültige Warnung sein sollte. Es scheint, dass es ein Fehler in der Code-Analyse von Web-Konfigurationsdateien ist. –

+0

redest du über den Editor intellisense? Oder sprichst du bei der eigentlichen Transformation von einem Fehler? –

Antwort

3

das ist nur eine Validierungswarnung, weil Ihr xml nicht ist, um die Anforderungen an die Validierung des Schemas erfüllen. Es bedeutet nicht wirklich etwas und Transformationen sind oft nicht für das vollständige XML-Schema gültig, weil sie aufgrund ihrer Natur oft teilweise Definitionen sind. Die Transformation wird weiterhin funktionieren. Attribute werden in der Transformation ignoriert, es sei denn, Sie geben sie als Teil der xdt-Transformationsbedingungen an.

Ja, Sie brauchen das <system.serviceModel> Element.

Wenn Sie nur möchten, dass der Fehler verschwindet, können Sie service name = auf einen Servicenamen setzen, den Sie in Ihrem Projekt haben, aber dies wirkt sich nicht auf die Umwandlung aus ignoriert werden (sofern Sie nicht eine xdt: locator-Einschränkung für das Serviceelement mit der Eigenschaft name festlegen).

Es könnte jedoch verwirrend sein, wenn andere Leute es beibehalten müssen. Es ist vielleicht besser, die Warnung zu hinterlassen und sie zu kommentieren oder den Namen zu notieren und zu kommentieren.

Es sollte beachtet werden, dass dies nur Editor Warnungen sind. Sie sind keine Compiler- oder Laufzeitwarnungen. Sie werden nur angezeigt, wenn Sie die Datei im Editor geöffnet haben, und es handelt sich nur um Intellisense-Warnungen. Sie haben also keinen wirklichen Einfluss auf die Qualität Ihrer Anwendung oder Ihres Builds.

+0

Was ist mein Punkt. Es scheint, dass VS eine Transformationsdatei erkennen und diese Warnungen nicht anwenden sollte. –

+0

@CodeMaverick - sich darüber zu beschweren, was "sein sollte" ist sinnlos ... das ist "was ist". Tatsache ist, dass es wahrscheinlich Fälle gibt, in denen die Annahme, dass Sie keine Warnungen haben möchten, ebenfalls falsch ist, so dass MS Beschwerden bekommen würde. Sie könnten vielleicht ein Feature hinzufügen, um Warnungen in den Eigenschaften der Datei zu deaktivieren, aber wie viel Aufwand sollte MS in etwas investieren, das wirklich kaum ein Problem ist. –

+0

Wenn die Leute nicht "was ist" herausfordern, dann würde die Veränderung niemals stattfinden. Mein Punkt ist vielleicht, dass es verschiedene Validierungsschemas für Transformationsdateien geben sollte, das ist alles. –

-1

Sie müssen einen Namen für den Dienst angeben.

<service name="serviceName"> 

Need envolved werden: <system.serviceModel>

+0

Ich muss dich abstimmen. Meine Frage zeigt deutlich, dass ich versuche, alle mexHttpBinding-Endpunkte für _alle_ Dienste zu entfernen, nicht _one_. –

+0

@CodeMaverick - das Hinzufügen des Namens wird immer noch die Endpunkte für alle Dienste entfernen, es schließt nur den Validator, weil Attribute vom XSLT-Prozessor standardmäßig ignoriert werden. Also, Sie haben abgelehnt, ohne auch nur die Lösung zu versuchen? –

+0

@ErikFunkenbusch Es beantwortet meine eigentliche Frage nicht. Ich möchte die Warnung loswerden, wenn sie gültig ist. Offenbar scheinen Ihre Antwort und meine Recherchen seit der Veröffentlichung darauf hindeuten zu wollen, dass es sich um einen Fehler handelt, weil es eine Schema-Validierung anwendet, wenn es wirklich nicht sein sollte. –