Ich habe eine benutzerdefinierte Bindung erstellt und möchte sie über App.config konfigurierbar machen.Erstellen einer benutzerdefinierten Bindung konfigurierbar über App.config
Die Bindung hat keine speziellen Optionen im Moment, so wäre es ausreichend, nur
<endpoint address="http://myAddress"
binding="myBinding"
contract="myContract">
Nach der Überprüfung einiger Websites zu unterstützen, fand ich heraus, dass ich Konfigurationsunterstützung durch ein <BindingExtension>
zu ermöglichen habe. Allerdings ist die MSDN-Website nicht viel helfen, da, wenn ich versuche
<extensions>
<bindingExtensions>
<add name="myBinding"
type="MyNamespace.MyHttpBinding, NameOfMyDll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</bindingExtensions>
</extensions>
hinzuzufügen, erhalte ich nur die folgende Fehlermeldung beim Versuch, das Programm zu starten:
Konfiguration Bindungserweiterung ‚System .serviceModel/bindings/myBinding 'konnte nicht gefunden werden. Stellen Sie sicher, dass diese Bindungserweiterung ordnungsgemäß in system.serviceModel/extensions/bindingExtensions registriert ist und dass sie korrekt buchstabiert ist.
Der in der bingExtension erwähnte Typ verweist auf den Typ, der von Binding
erbt.
Was muss ich hinzufügen, um die Konfigurationsunterstützung für meine Bindung zu aktivieren?
Update
Mein Ziel ist nur in der Lage zu sein, meine Bindung an die Config-Datei zu exportieren. Ich möchte keine besonderen Einstellungen für die Bindung zulassen. Es sollte nur über den Tag <endpoint>
der Konfigurationsdatei verwendbar sein.
I've uploaded a minimal sample project where the bug occurs to
megaupload
.
Im Allgemeinen sollte das, was Sie tun, funktionieren. Haben Sie es ohne WebServiceHost versucht, aber das normale? – tomasr
Ja, habe es auch mit einem ServiceHost versucht. Das Problem besteht weiter. Ich habe bemerkt, dass sich die Fehlermeldung nicht ändert, auch wenn ich das Attribut "type" in der Erweiterung in etwas Unsinn wie "foobar" ändere. Außerdem habe ich versucht, die DLL der Bindung in den globalen Assemblycache hinzuzufügen. Fehlermeldung immer noch gleich :-( – Etan
Klingt, dass Ihre Bindungserweiterung überhaupt nicht geladen wird. Haben Sie versucht, fuslogvw.exe zu verwenden, um zu prüfen, ob die Assembly möglicherweise nicht geladen wird? WCF ist wählerisch, wie der Assemblyname geschrieben wird bei der Registrierung von Konfig-Erweiterungen. – tomasr