2010-01-07 4 views
4

Il semble que le monde soit inondé de gens ayant des problèmes pour déployer les services RIA WCF, et maintenant j'en fais aussi partie. J'ai déjà essayé un tas de choses, mais en vain. J'ai besoin de WCF RIA pour supporter une application Silverlight 3 que j'ai construite. L'histoire courte est, utilisant les nouveaux services de RIA de WCF (novembre 09?) J'ouvre VS 2008, crée le nouveau projet (application argentée), permettant des services de ".NET RIA". Ajouter un nouvel élément au projet Web - fichier dbml Linq2SQL (à partir de SQL 2005 DB préparé plus tôt) et compiler. J'ajoute un nouvel élément au projet web - service de domaine (relier les tables dont j'ai besoin) et compilé. En utilisant le contexte de domaine, je "charge" les données avec une requête RIA standard dans MainPage et ajoute un TextBlock pour afficher les données renvoyées. Build & course (cassini) - succès. Utilisation de VS pour publier sur IIS sur PC local - succès. Utilisation de VS pour publier sur le serveur de test (IIS6): accédez à l'emplacement et l'application Silverlight se charge mais Fiddler me dit que j'ai un 404 sur toutes les requêtes WCF .svc. Utilisez Fiddler pour "lancer IE" sur la demande de service et c'est vrai - 404.Problèmes de déploiement WCF RIA Silverlight

J'ai déjà exécuté aspnet_regiis, ServiceModelReg et ajouté des types mime pour .xap, .xaml, .xbap et .svc. J'ai inclus la DLL System.Web.Ria et System.Web.DomainServices avec copy local true.

J'ai besoin d'aide soit

a) une solution

b) une approche pour trouver une solution

Répondre

3

J'ai eu quelques problèmes avec cela aussi, mais une fois que je les pensais à c'est relativement simple vers l'avant.

D'abord, passez par http://timheuer.com/blog/archive/2009/12/10/tips-to-deploy-ria-services-troubleshoot.aspx (bien qu'il semble que vous ayez couvert la plus grande partie).

Vérifiez que vous avez votre DomainServiceModule dans le web.config dans le nouveau bit system.webServer et le vieux bit pour IIS6:

<httpModules> 
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add name="DomainServiceModule" type="System.Web.Ria.Services.DomainServiceHttpModule, System.Web.Ria, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </httpModules> 

Enfin, je devais créer mes services manuellement, en créant .svc fichiers où SL est à la recherche pour eux (de Fiddler) et les remplir avec:

<%@ ServiceHost Service="NameOfSerice" Factory="System.Web.Ria.DomainServiceHostFactoryEx" %> 

Assurez-vous que vous visitez également le fichier .svc directement (sans le/binaire sur la fin) que vous pouvez obtenir une belle erreurs là (bien une fois que vous résolvez votre 404 bien sûr!)

HTH,

Jordanie.

+0

Merci pour la suggestion. J'ai suivi les suggestions de Heuer, même si je n'ai jamais compris comment faire un vrai fichier .SVC, alors merci. Fiddler me dit qu'il cherche /PatientBoard/ClientBin/PatientJourneyWeb-PJService.svc/binary - donc je devrais créer un fichier appelé PatientJourneyWeb-PJService.svc et mettre le texte que vous avez décrit ici? est-ce que je remplace "PatientJourneyWeb-PJService" dans Service = "NameOfSerice"? – Handleman

+0

Tout d'abord, essayez d'aller dans /PatientBoard/ClientBin/PatientJourneyWeb-PJService.svc et voyez ce que vous obtenez ... Vous essayez peut-être de vous rediriger vers une page de connexion? Si c'est le cas, assurez-vous que IIS est réglé sur anon + forms auth, et non sur windows auth ... Si cela vous aide, créez le service à cet endroit appelé exactement cela (sans binaire) et pointez l'hôte du service vers votre domaine un service. – Jordan

+0

Merci pour votre aide. J'ai obtenu un 404 en ouvrant le service directement, en ajoutant le fichier svc maintenant que je reçois 500: "Le type 'PatientJourneyWeb.PJService', fourni en tant que valeur d'attribut Service dans la directive ServiceHost est introuvable." – Handleman

-1

Je pense que vous utiliseriez uniquement FactoryEx si vous avez étendu l'usine comme décrit here. En outre, selon mes fichiers d'aide, le nom complet est System.Web.Ria.Services.DomainServiceHostFactory, mais l'analyseur ne peut pas non plus créer ce type, même si j'ai System.Web.Ria dans le GAC. Je suis d'accord - déployer WCF RIA sur https est un défi - je n'ai pas encore réussi à le faire fonctionner.

0

J'ai rencontré le même problème. Travaillé très bien avec le serveur cassini sous Windows 7. Déployé à Windows Server 2008 R2 avec IIS7, et cela ne fonctionnerait pas. Fiddler a rapporté qu'une 'EndPointNotFoundException' était lancée.Ma solution, depuis que j'ai le plein contrôle du serveur, était d'installer Visual Studio 2008 Express, Silverlight 3 SDK, et la bêta des services RIA WCF pour VS2008. Cela signifiait que les DLL nécessaires étaient déjà installées dans le GAC. Je ne pense pas que cela a affecté le résultat, mais j'ai désactivé 'Copy Local' pour les DLL RIA qui ont été référencées par l'application Web.

Probablement une solution peu orthodoxe, mais cela a fonctionné pour moi !!! En fait, je l'ai fait à la suggestion de Microsoft Support. Par ailleurs, la prise en charge par Microsoft est très limitée en ce moment. Ils essaient actuellement de comprendre en interne qui va supporter cette technologie: l'équipe WCF ou l'équipe Silverlight. Je sais que c'est encore en version bêta, mais sachez qu'une licence 'GoLive' ne signifie pas qu'elle est entièrement supportée. J'avais un membre de l'équipe de la WCF qui a fait tout son possible pour m'aider à ce sujet, mais il m'a donné plusieurs avertissements au cours de l'appel, disant qu'il n'était pas encore vraiment soutenu par ces canaux.

1

J'ai lutté ce problème pendant un petit moment moi-même où il n'a pas pu trouver le fichier .svc. J'ai vite réalisé que ce n'était pas seulement mon .svc, c'était tous les fichiers .svc. Il a ensuite semblé être un problème IIS6. Il s'avère que les extensions de service Web ASP.NET v4.0x sont définies sur "Interdit" par défaut. Nous sommes allés dans la configuration des extensions de service Web et avons défini ASP.NET v4.0x sur "Autorisé" et la vie était bonne.

0

Si quelqu'un est intéressé, comment déployer une solution Silverlight complète pour IIS avec votre propre script batch, lisez ma réponse dans ce post:

Is there a Management Service (WMSVC) UI in IIS 7 on Windows 7?

Je l'ai fait, parce qu'il n'y avait aucun moyen, la fonctionnalité in-bulit webdeploy de VS 2010 fonctionnait. Le script de traitement par lots permet, que vous pouvez exécuter et déboguer sur IIS. Je sais, ce n'est pas la réponse explicite à cette question, mais c'est une question très similaire.

Questions connexes