Bin gerade über diesen hier gestolpert und ich kann keine Informationen darüber finden. Deshalb frage ich hier. Vielleicht weiß jemand warum.Warum benötigen vollständig qualifizierte Assemblynamen manchmal Leerzeichen?
Ich habe eine benutzerdefinierte WCF-Verhaltenserweiterung zu meiner web.config hinzugefügt. Es sieht wie folgt aus:
<behaviorExtensions>
<add name="errorBehavior" type="MyNs.TracingErrorBehaviorElement,MyNs,
Version=1.0.6.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
(Kein Platz drin: MyNs.TracingErrorBehaviorElement,MyNs
)
Es funktioniert perfekt auf meinem Entwicklungsrechner, auf unserem Testserver, auf unserem Live-Server usw.
Heute wir das Produkt auf einem Kundenserver installiert und bekam die folgende Ausnahme:
System.Configuration.ConfigurationErrorsException: ein Fehler ist aufgetreten cr den Konfigurationsabschnitt-Handler für System.ServiceModel/Verhalten essen: Erweiterungselement 'errorBehavior' kann nicht zu diesem Element hinzugefügt werden. Stellen Sie sicher, dass die Erweiterung in der Verlängerung Sammlung an system.serviceModel/extensions/behaviorExtensions registriert ist ...
Nach einer halben Stunde verbringen Sie im Internet nach möglichen Ursachen suchen ich Räume auf den vollständig qualifizierten Montagenamen hinzugefügt. So habe ich es zu:
<behaviorExtensions>
<add name="errorBehavior" type="MyNs.TracingErrorBehaviorElement, MyNs,
Version=1.0.6.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
(Siehe den Raum: MyNs.TracingErrorBehaviorElement, MyNs
)
und es funktionierte.
Weiß jemand, warum es ohne Platz auf einigen Maschinen und nicht auf anderen Geräten funktioniert? Ich überprüfte die .Net-versions
. Sie passten zusammen. Könnte es durch regionale Einstellungen verursacht werden?
bearbeiten sagt:
ich die gebrauchten .Net-Versionen auf allen Maschinen überprüft und sie sind alle gleich: .Net 4.0 Aber ich finde einen Unterschied zwischen der Maschine, wo ich den Fehler mit einem fehlenden blank erhalten und die anderen Maschinen, wo es funktioniert: Alle Maschinen, auf denen es ohne das Leerzeichen funktioniert, haben .Net Framework 4.5 installiert. Es könnte also einer dieser Fehler sein, die in 4.0 behoben und mit 4.5 bereitgestellt wurden, oder?
http://blogs.msdn.com/b/scicoria/archive/2010/06/10/spaces-in-type-attribute-for-behavior-extension-configuration-issues.aspx –