“ASP.NET AJAX framework lato client non è stato caricato” con WCF - tutto provato, ancora ottenerlo

StackOverflow https://stackoverflow.com/questions/4755737

Domanda

I ora ottenere il "quadro lato client ASP.NET Ajax è riuscito a caricare." Errore di javascript nel mio asp.net 4 siti web, non appena l'eseguo (aprire la pagina di login).

E 'usato per accadere solo dopo che ho colpito Ctrl-F5 (aggiornamento della pagina e tutte le immagini / fogli di stile / scripts) in del browser durante il debug.

I miei usi app asp.net 4 (originariamente scritto su 1.1 o 2), WCF, JsTree, alcuni controlli Telerik e MS AJAX Extensions / toolkit.

In alcuni giorni di googling, ho trovato un di grandi dimensioni numero di soluzioni date da persone con lo stesso problema (anche qui su SO e Telerik di aiuto forum):

Ho provato quanto segue, nessuno ha funzionato per me:

  • provato a mettere un ToolkitScriptManager sulla pagina invece di uno ScriptManager
  • Andando a "Programmi e funzionalità" Pannello di controllo e facendo una "riparazione" on "Microsoft .NET Framework 4 profilo Client" e "Microsoft .NET Framework 4 esteso"
  • Lo spostamento del ScriptManager alla parte inferiore della pagina
  • Nel web.config, impostando compilation debug = "false"
  • avviato un nuovo progetto ASP.NET 4, aggiunto e updatedpanel a una pagina, guardò il web.config e ha cercato di fare il mio sguardo web.config più piace
  • Controllato data di sistema del PC è stato corretto
  • elementi posizione utilizzata nel mio web.config per consentire l'accesso autenticato di WebResource.axd, ScriptResource.axd e Telerik.Web.UI.WebResource.axd (ho i controlli Telerik in questo sito)
  • Aggiunto routes.Ignore ( "{resource} axd / {* pathinfo}"); alla mia registrazione percorso in Global.asax

Tutte le altre soluzioni a questo problema?

posso postare web.config o un codice, se necessario.

Aggiornamento 1: Informazioni
Ho guardato quello che stava accadendo utilizzando la scheda "rete" di Firebug. richieste GET per ScriptResource.axd e WebResource.axd sono tutti riescono con 404 . Questo capannone ulteriore luce sulla questione?

Aggiornamento 2:? Soluzione parziale Ho usato la storia di controllo sorgente per tornare revert web.config per prima ho aggiunto un servizio WCF al sito. Il web.config che finalmente ha funzionato stato poco prima ho aggiunto questo:

<system.serviceModel>
    <behaviors>
        <endpointBehaviors>
            <behavior name="FoldersAspNetAjaxBehavior">
                <webHttp/>
            </behavior>
        </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <services>
        <service name="Folders">
            <endpoint address="" behaviorConfiguration="FoldersAspNetAjaxBehavior" binding="webHttpBinding" contract="Folders" />
        </service>
    </services>
</system.serviceModel> 

... e rimosso la linea di routing associato dal mio Global.asax:

routes.Add(new System.ServiceModel.Activation.ServiceRoute("", new System.ServiceModel.Activation.WebServiceHostFactory(), typeof(Folders)));

Quindi, uno o entrambi di questi erano il colpevole. Qualcuno può suggerire come un servizio WCF o è di routing potrebbe aver causato questo errore MS Ajax?

Questo è il mio primo servizio WCF mai. Ho appena capito che cosa il codice di cui sopra sta facendo, ma sto ritenendo sospetto un problema di routing è il cuore del problema da qualche parte ...

In alternativa - Qualcuno può suggerire un'alternativa alla WCF? Posso vivere senza di essa se posso ottenere i miei dati JSON consegnati a jQuery in un altro modo. HttpHandler forse, o WebService, o moduli elettronici che sputa fuori JSON come Response.Write o qualcosa del genere?

Aggiornamento 2: Routing
Sembra la roba routing in global.asax necessario per il servizio WCF è il problema (vedi sopra). Commentando che una linea sembra risolvere il problema. Andando a provare a cambiare il percorso percorso ...

Risolto : ho risolto io stesso, vedere la mia risposta accettata, ma sicuramente non avrebbe potuto fare così in fretta, senza suggerimenti lungo la strada giusta da alcune risposte molto penetranti, grazie a tutti.

È stato utile?

Soluzione 6

Nel mio caso, che cosa realmente ha risolto il tutto stava cambiando come ho chiamato il servizio WCF.

Da tutorial che ho letto su WCF, mi mancava il fatto che non ho avuto bisogno di routing nel Global.asax per chiamare il servizio web, e ho potuto solo chiamare come:

http:? //Localhost/myWebApp/WcfService.svc/MethodName param = valore

(ero stato basandosi sul percorso in Global.asax per farmi chiamare in questo modo: http: // localhost / MyWebApp / MethodName param = valore . Mi sono liberato di routing e usato il molto al di sopra, invece, e il problema è scomparso)

Grazie a tutti per le risposte penetranti.

Altri suggerimenti

Installa un'estensione del browser che possono registrare le richieste al server. Ad esempio, Firebug per Firefox. Allora avete bisogno di controllare tutte le richieste del browser fatto per il server e vedere se ci sono errori o le risposte troppo brevi.

Non sono sicuro circa l'errore con la sessione (s), tuttavia è necessario davvero non avere WCF se si tratta di semplici servizi XML / JSON web ... Ho sostituito la maggior parte dei nostri servizi basati su WCF con XML ristoratore / JSON webservices ... la maggior parte di questi servizi sono in realtà un semplice file aspx dove sto emettere i miei risultati in xml / json

.net framework integrato è dotato di XML / JSON lettori e scrittori, che è possibile utilizzare per convertire le strutture di dati (se presente) per xml / json

Ad esempio: è possibile utilizzare la classe XmlTextWriter per scrivere via dritto al Response.OutputStream. ad esempio:

XmlTextWriter xtw = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
xtw.WriteStartDocument();

Si può quasi certamente fare a meno di WCF. Aggiungere un semplice servizio web e aggiungere un metodo per ogni chiamata asincrona si vuole fare per JSON o XML. I due attributi avrete bisogno di conoscere sono WebMethod e ScriptService .

un WALKTHROUGH sull'utilizzo di loro con jQuery può essere trovato qui

Potrebbe essere che i due gestori sono stati dirottati da WCF. Si potrebbe provare ad aggiungere i gestori indietro manualmente. Se si uniscono in

<httpHandlers>
  <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="true"/>
</httpHandlers>

per il vostro web di configurazione, fa il WebResource.axd ancora restituire 404?

Credo che il problema è legato al cambiamento di versione di .NET framework.

L'errore è che è stato in grado di caricare la libreria lato client. Ci sono anche alcuni errori 404 che indicano che il problema era che i file non sono stati recuperati dal server.

Quindi, tutte le anatre devono essere consecutive:

  • corretta versione di asp_net è iscritto
  • impostazioni in uso web.config corretta versione del quadro
  • pool di applicazioni è configurato per utilizzare corretta versione del quadro

ho avuto il problema. E 'stato a causa di routing dal file global.asax tutti gli script sono stati reindirizzamento alla pagina di qualche altro e così è stato difficile trovare ajax file di script per la pagina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top