SignalR applications ne fonctionnent pas sous IIS
Je suis en train de construire un SignalR application dans Visual Studio 2012. Mon problème est qu'il fonctionne bien sous Visual Studio debug (à l'aide de Visual Studio 2012 sur Windows 7), mais lorsque je tente de déployer l'application sur IIS 8 sur Windows Server 2012, l'application ne fait rien de plus que l'affichage de la index.html page.
J'ai décidé d'essayer de déterminer si le problème est dans mon code ou dans SignalR. J'ai compilé le SignalR tutoriel illustré à http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr. Cela fonctionne bien sous Visual Studio, mais, encore une fois, ne rien faire d'autre que d'afficher une page statique sous IIS.
J'ai essayé quelques méthodes énumérées ici: Signalr/Hub pas de chargement dans IIS 7, mais fonctionne correctement dans Visual Studio, mais aucun d'entre eux semblent fonctionner.
Est votre chat de la page appelée index.html? Ou est-ce votre page chat appelé quelque chose de différent et index.html est juste la valeur par défaut de IIS page pour un nouveau site web?
toute solution finale avec l'intégralité du code source ?
OriginalL'auteur RikSaunderson | 2013-06-03
Vous devez vous connecter pour publier un commentaire.
En supposant que vous avez réellement envie de voir
index.html
(c'est à dire votre question n'est pas "vide index.html se montrant à la place de mon chat chat.html"), alors cela ressemble lorsque vous entrez quelque chose dans le chat c'est pas un chat dans les autres fenêtres de navigateur qui sont connectés à la discussion.Je voudrais essayer quelques tests de base. Je vais supposer que:
Microsoft.AspNet.SignalR.Core.dll
,Microsoft.AspNet.SignalR.Owin.dll
,Microsoft.AspNet.SignalR.SystemWeb.dll
et les autres).Je voudrais essayer les tests suivants:
yourdomainnamehere.com/index.html
(ou de le recharger si vous êtes déjà là)index.html
signalr/hubs
signalr/negotiate
(avec une chaîne de requête)signalr/connect
(avec une chaîne de requête)Donc:
Si vous voyez que, mais pas 4.1 ci-dessus, puis il y a un problème avec l'ASP.NET le routage. Vérifiez que vous avez ce que l' première ligne dans votre
Application_Start
:Si vous voyez que, mais pas 4.2 ou 5.1 puis il y a un problème avec votre code javascript qui est de la prévention de la
$.connection.hub.start()
code appelé.Ok, ça marche, maintenant ce qui?
Maintenant, vous devez activer côté client en vous connectant sur signalr. Dans votre index.html le chat de la page, où vous pouvez voir l'
$.connection.hub.start().done(function () {
ligne, ajoutez la ligne suivante pour que le code se lit comme suit:Ouvrez le navigateur outils de dev de nouveau, et passer à l'onglet console. Maintenant charger la page et envoyer un chat. Voir ce que les messages d'erreur que vous obtenez, le cas échéant. Avec l'ouverture de la page et l'envoi d'un message de discussion devrait générer un journal comme:
Note de bas de page: Comment tester cette ASP.NET est installé et configuré sur le serveur
À l'aide de votre signalr point de terminaison de site web, créer une nouvelle page:
TestAspNet.aspx
.<asp:Label runat="server" ID="lblTest"></asp:Label>
Page_Load
:this.lblTest.Text = DateTime.Now.ToLongTimeString();
Maintenant la déployer sur votre serveur web et accédez à
http://yourdomainnamehere.com/TestAspNet.aspx
. Si cela vous montre à l'heure actuelle du serveur, vous savez ASP.NET est installé sur le serveur. Si non, alors il y a deux options:yourdomainnamehere.com
Si vous pensez qu'un site peut-être à l'aide de l'en-tête d'hôte, vous pouvez utiliser powershell pour facilement le vérifier sur Win Server 2102:
Le nom du site et id sont indiqués dans la colonne résultat
ItemXPath
SignalR: Triggering client hub event...
ne s'affiche pas. je ne sais pas ce qui est mal!J'ai résolu le problème. c'était à cause de mon erreur sur le côté de serveur logique.
pouvez-vous élaborer sur ce que l'erreur a été de votre côté serveur logique? Je vais avoir un problème similaire et n'ont pas été en mesure de comprendre quelle est la cause malgré la vérification de tout sur la réponse ci-dessus.
aussi loin que je me souvienne, c'était mon erreur sur le choix des clients pour les mettre à jour par le biais de
Hub
.Merci c'est un fab liste de contrôle. Dans mon cas, il y avait quelques problèmes. La première étant fichiers JS qui ne sont pas desservies en raison de la non existant signalR min de fichier et d'autre part d'entrées nécessaires dans le fichier de manifeste d'application pour les connexions de signal.
OriginalL'auteur Andy Brown
J'ai eu le même problème. Triés par réglage de l'Application de la Piscine pour être ASP.NET v4.0 (v4.0).
J'ai également eu à utiliser google Chrome et pas IE pour la démo app pour fonctionner correctement.
OriginalL'auteur Jon Bishop