2009-12-17 12 views
11

Ich habe JSONP-Webdienste mithilfe von WCF unter fx3.5 gelernt und erstellt. Sie können einige der Versuche lesen, die ich bei .NET ASMX - Returning Pure JSON? hatte Ich habe schließlich eine Probe laufen, aber jetzt bin ich ich bin dove tailing es in meine App.Der Typ [nameHere], der für die Erweiterung '[extensionHere]' registriert wurde, konnte nicht geladen werden.

Die web.config für den Service:

<system.serviceModel> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="JsonpServiceBehavior"> 
      <webHttp /> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <services> 
     <service name="RivWorks.Web.Service.CustomerService"> 
     <endpoint address="" 
        binding="customBinding" 
        bindingConfiguration="jsonpBinding" 
        behaviorConfiguration="JsonpServiceBehavior" 
        contract="RivWorks.Web.Service.ICustomerService" /> 
     </service> 
     <service name="RivWorks.Web.Service.NegotiateService"> 
      <endpoint address="" 
        binding="customBinding" 
        bindingConfiguration="jsonpBinding" 
        behaviorConfiguration="JsonpServiceBehavior" 
        contract="RivWorks.Web.Service.INegotiateService" /> 
     </service> 
    </services> 
    <bindings> 
     <customBinding> 
     <binding name="jsonpBinding" > 
      <jsonpMessageEncoding /> 
      <httpTransport manualAddressing="true"/> 
     </binding> 
     </customBinding> 
    </bindings>  
    <extensions> 
     <bindingElementExtensions> 
     <add name="jsonpMessageEncoding" 
      type="RivWorks.Web.Service.JSONP.JsonpBindingExtension 
       , RivWorks.Web.Service 
       , Version=1.0.0.0 
       , Culture=neutral 
       , PublicKeyToken=null"/> 
     </bindingElementExtensions> 
    </extensions> 
    </system.serviceModel> 

ich die folgende Störung erhalte und ich habe alles versucht, ich, es zu beheben denken kann. Habe ein paar Tippfehler (Dienst statt Dienst) in meinem Code gefunden. Ich verwende den Beispielcode unter MSDN. Hier ist der Fehler:

Configuration Error Description:** An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: The type 'RivWorks.Web.Service.JSONP.JsonpBindingExtension 
       , RivWorks.Web.Service 
       , Version=1.0.0.0 
       , Culture=neutral 
       , PublicKeyToken=null' registered for extension 'jsonpMessageEncoding' could not be loaded. 

Source Error: 

Line 58: <customBinding> 
Line 59:  <binding name="jsonpBinding"> 
Line 60:   <jsonpMessageEncoding /> 
Line 61:   <httpTransport manualAddressing="true" /> 
Line 62:  <binding> 

Source File: C:\RivWorks\dev\services\web.config Line: 60 

Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3082 

Hat jemand irgendwelche Ideen, was ich sonst noch überprüfen kann? Es gibt eine DLL namens RivWorks.Web.Service.dll, die erstellt und in das Verzeichnis bin der Website kopiert wird. Die Dienste Web.config werden in das Verzeichnis Dienste der Website kopiert. Ich habe keine Konflikte in der web.config der Website. Ich habe alle Rechtschreibprobleme überprüft.

+0

Dies ist definitiv keine offizielle Antwort, aber ich wollte nur etwas Frustration teilen, die ich mit genau diesem Problem hatte: In IIS habe ich Site A, die Anwendung A (App_A) hostet. Ich habe dann ein virtuelles Verzeichnis, das Anwendung B (App_B) unter Site A hostet. App_A implementiert eine benutzerdefinierte Erweiterung ähnlich wie oben. Die web.config von App_B erbte diese benutzerdefinierte Erweiterung von web_config von App_A. Dies warf den genauen Fehler auf, der hier beschrieben wird. Das war total meine Schuld, weil ich es nicht richtig konfiguriert habe. Ich wollte das nur mit allen teilen. Nicht sicher, ob es eine Antwort wert ist. – dyslexicanaboko

Antwort

15

Ist die DLL (RivWorks.Web.Service.dll) in der Build-Ausgabe?

nächstes versuchen (für die "jsonpMessageEncoding" extension):

type="RivWorks.Web.Service.JSONP.JsonpBindingExtension, RivWorks.Web.Service, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" 

beachten Sie die unterschiedlichen Abstände sowohl in Bezug auf " , " und Wagenrücklauf.

Danach würde ich die Saite verdreifachen. Schreiben Sie eine Konsole exe, dass die DLL verweist Sie benötigen (RivWorks.Web.Service) und Ausgang:

Console.WriteLine(
    typeof(RivWorks.Web.Service.JSONP.JsonpBindingExtension) 
    .AssemblyQualifiedName); 

, dass die Zeichenfolge, die Sie in der XML wollen, wörtlich. Fügen Sie keine zusätzlichen Leerzeichen in diese Zeichenfolge ein.

+0

Ran die Konsole App und die Zeichenfolge kam genau so zurück, wie ich es habe. Erfasste es in einer Zeichenfolge var, inspiziert es, kopierte es, steckte es in meine Dienste web.config und immer noch den gleichen Fehler. Andere Gedanken? –

+0

Und ja, die DLL ist in der Build-Ausgabe. Ich nutze BeyondCompare, um von meinem lokalen Computer-Projektbereich in mein localhost-Verzeichnis zu wechseln. Von dort geht es auch zum Dev-Verzeichnis auf dem Dev-Server (über BeyondCompare). Ich überprüfe jeden Schritt des Weges und ich kann jedes Mal den neuesten Build sehen. –

+0

Ich habe versucht, alles auf einer Zeile zu haben, wie du es zeigst, und es machte keinen Unterschied. :( –

Verwandte Themen