3

Je suis en train de buid un site avec les éléments suivants:Silverlight 4.0 + 2.0 + MVC services WCF RIA + EF 4.0 = Erreur de chargement

  • VS 2010 (pour les mises à jour WCF RIA Services)
  • Silverlight 4.0 (fourni avec les services WCF RIA).
  • MVC 2
  • EF 4,0

Je suis mise en place afin que les pages en regard du public seront html de MVC, mais la partie d'administration sera une application de navigation silverlight à l'aide en utilisant WCF RIA Services pour les données accès.

Lorsque je crée l'application silverlight dans une application de formulaires Web, il fonctionne (je suis en mesure d'ajouter une grille de données et récupérer des données à l'aide de EF 4.0 et WCF RIA Services avec succès): alt text http://www.patleague.com/images/sl4_webforms.png

Lorsque je crée l'application silverlight dans une application MVC2: alt text http://www.patleague.com/images/sl4_mvc2.png

je reçois une erreur comme suit (je l'ai ajouté la même grille de données dans les deux cas - une table simple avec 2 dossiers): alt text http://www.patleague.com/images/sl4_mvc_dataerr.png

Le serveur Web côté serveur fonctionne contrairement au serveur MVC. J'ai essayé sans succès la journalisation de WCF aussi bien que le fiddler, mais je ne peux obtenir aucune sortie (utilisant l'exemple ici: http://msdn.microsoft.com/en-us/library/ms730064.aspx), et j'ai également essayé le violoneur pour obtenir l'information sans la chance. Je me bats vraiment avec cela et je me demande si quelqu'un d'autre a rencontré ce problème et a trouvé un moyen de contourner le problème?

Merci, Dennis

+0

Désolé, les sites que je les ai placés ne sont plus en ligne. –

Répondre

1

Ce problème pourrait être spécifique à mon site, mais peut-être que d'autres personnes ont le même problème, et j'avais été tellement frustré par cela que j'avais abandonné pendant un moment et essayé d'autres méthodes pour faire ce que je voulais , mais je suis revenu à Silverlight parce que j'ai du mal avec les bibliothèques Javascript et JS UI. J'ai eu plus de chance avec fiddler lorsque je travaillais sur le site déployé (je n'ai pas eu de résultat lorsque je travaillais avec le serveur de développement).

Quand je navigué sur mon site avec l'application silverlight, la boîte de dialogue surgit avec l'habituel « opération de chargement a échoué pour la requête ... », et Fiddler a montré ce qui suit en surlignant l'erreur:

IIS specified authentication schemes 'Basic, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used.

Je regardais cette erreur dans le DiscountASP.net (mon fournisseur d'hébergement) et trouvé un article KB qui m'a chargé de mettre à jour le web.config (pour IIS7) comme suit:

<system.webServer> 
    <security> 
    <authentication> 
     <basicAuthentication enabled="false" /> 
    </authentication> 
    </security> 
</system.webServer> 

et alto! Je pourrais utiliser WCF RIA Services avec Silverlight dans asp.net MVC2! J'ai également trouvé qu'il était inutile pour moi de créer un service spécial et un domainhostfactory comme décrit dans plusieurs articles de blog tout en recherchant ces choses, ou changer le routage pour éviter les interactions avec MVC et la demande de service.C'est tout ce que je devais faire

Je suppose que c'est une solution de base assez, et j'espère que ça va aider quelqu'un d'autre. J'ai été extrêmement frustré par cela, et déçu que cette solution simple soit disponible publiquement, mais aucune instruction étape par étape pour ce scénario n'est donnée par Microsoft car elle utilise les technologies Microsoft les plus récentes.

Merci, Dennis

+0

Merci beaucoup, Dennis. Mon fournisseur d'hébergement avait également une option pour activer l'authentification Windows intégrée. Assurez-vous que cela est défini sur False, aussi! –

5

Ignorant les routes pour les services corriger ce problème lorsqu'il est ajouté à Global.asax.cs:

routes.IgnoreRoute("{*allsvc}", new { allsvc = @".*\.svc(/.*)?" }); 

crédit pour cette réponse doit aller à OneSmartGuy: sa réponse fixe mon question aussi.

+0

Cette solution a cessé de fonctionner avec SL4 et la version finale des services WCF RIA. –