IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

"Déploiement" MVC3 sur un serveur IIS local? redirection inactive


Sujet :

ASP.NET MVC

  1. #1
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut "Déploiement" MVC3 sur un serveur IIS local? redirection inactive
    Bonjour,

    Voila enfin venu le temps du déploiement...a non, enfin c'est un début. Je souhaiterais déployer mon application sur mon serveur IIS local. Je suis sous visual studio 2010 ultimate. Ce dernier propose dans les propriétés du projet de déployer l'appli soit sur le Visual Studio Development Server, par défaut et qui marche bien, soit sur serveur web distant, j'ai essayé, mais j'ai vite été bloqué par les droits. Enfin, pour mes besoins, un deploiement sur IIS serait idéal, ce serais pour que mes collegues puissent acceder à l'appli et me donner leurs avis.

    Donc je clique sur "create virtual directory" ce qui marche bien et me met mon appli web dans IIS, mais lorsque je cherche à afficher l'application, la redirection MVC3 n'est pas prise en charge. Du coup, il ne sait pas quoi afficher (pas de fichier index.htm ou Default.asp, etc.

    Donc comment faire pour que ma redirection soit respectée?

    Sinon quand j'éssaye de lancer l'appli en mode debugg depuis VS, j'ai l'erreur suivante:

    Unable to start debugging on the web server.The server doesn't support the debugging on ASP.NET or ATL Server Application.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Pour déployer un application web aspnet classique tu as les mêmes problèmes ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut
    Salut,
    je n'ai pas essayé..je vais déployer l'application de base asp.net classique juste pour vérifier.

    Edit: je suis en train d'essayer de mettre l'application par defaut asp.net, c'est à dire avec seulement les deux pages sur IIS. J'ai activé le composant, c'est IIS 5.1 et j'utilise le Framework ASP.NET 4. J'ai donc donné les droits à mon repertoire source de Visual studio et j'ai créé un repertoire virtuel dans IIS qui pointe vers ce dernier. Quand je place un fichier Index.htm (ce nom est précisé dans les parametres des site web de mon IIS comme fichié d'entré), j'ai bien le contenu de ce dernier qui s'affiche quand j'y accede via "localhost/Test/". Donc le chemin est bon
    Ensuite, je l'enleve pour pouvoir acceder à mon appli asp.net, j'obtient l'erreur:
    Server Application Unavailable The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.
    Donc je pense que asp.net est mal configuré dans mon IIS. J'ai pourtant selectionné la version d'asp.net 4.0.30319. Ensuite j'ai activé ASP.NET en executant le fichier: C:/Windows/Microsoft.NET/Framework/aspnet_regiis.exe -i (pour l'installer, l'installation réussie).

    Voila où j'en suis présentement, dans les logs, j'ai les erreurs suivantes:
    Failed to execute the request because the ASP.NET process identity does not have read permissions to the global assembly cache. Error: 0x80070005 Accès refusé.
    puis:
    aspnet_wp.exe (PID: 2856) stopped unexpectedly.
    Voila,voila, je vais regarder pour les codes d'erreur, peut etre qu'il me manque un élément ou une manip' a faire

    Edit: J'ai lu quelques POST qui parlaient de l'erreur. J'ai donc autorisé(je crois ) ASP.NET à acceder au GAC Folder via la commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    asp_regiis.exe -ga NITRO\ASPNET
    puis j'ai redemarrer IIS, toujours le même résultat, je commence à lire des posts qui parlent de desinstaller Visual Studio, de reinstaller IIS puis d'installer Visual Studio...j'aimerais eviter de perde une aprem'...je taff sur un PC vieux comme Erode qui aime prendre son temps

  4. #4
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut
    J'avance,j'avance. J'avais abandonné l'idée de lancer mon application depuis visual studio non pas sur le serveur intégré(Cassini de mémoire...vérifié sur Google ) mais par IIS. En effet, il me mettait une erreur:
    Debugging Failed Because Integrated Windows Authentication Is Not Enabled
    quand je le lançais. J'ai donc suivi les manip préconisée par msdn:
    merci msdn(pas souvent que je dis ça)
    Il suffit donc de regler l'authentification sur "intégrée à windows" dans IIS. J'ai donc mon application de base qui tourne sur le localhost et est accessible par les collegues de l'autre coté de la piece via "monNomDePC"/Test.

    Quand je quitte visual studio, l'application Test reste sur le serveur, donc je me demande si c'est comme si elle était déployée?Quand j'essaye d’interagir avec ma base de données, j'obtient une erreur,mon site Test n'est il qu'une suite de page statique?

    J'attaque donc mon objectif principal, mettre mon appli MVC3 sur le localhost, je procede de la même maniere: il essaye de me lister les repertoires et j'ai un access Denied, donc il ne trouve pas de point d'entrée. j'en arrive à mon deuxieme probleme, quel point d'entré pour une application MVC3? j'ai mis le Global.asax sans succes.

    J'ai alors redémarré visual studio, il me dit que IIS utilise .NET Framework 2 alors que lui utilise le 4, je cherche donc a nouveau et dans IIS->serveur web->propriété-> répertoire général->configurer, j'assigne non pas la 2.0etc mais la version 4.0.etc, j'arrete tout, je redemarre, meme probleme...je vais y arriver!..mais pas aujourd'hui je pense

  5. #5
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut
    J'ai trouvé la solution sur stackoverflow

    Il faut donc bien ajouter une route par défaut (j'ai ajouté (.*), mais la faire pointer sur C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
    et non sur l'executable qui installe asp.net . J'ai donc mon application qui tourne sur le localhost.

    J'ai cependant un probleme de base de données, il me refuse l'acces quand je suis sur le localhost:
    Cannot open database "Db_Customs" requested by the login. The login failed.
    Login failed for user 'NITRO\ASPNET'.
    NITRO étant le nom de mon PC. Je devrais pourtant pouvoir afficher les données de la base, non? Où configurer ces autorisations?

    Ma chaine de connection ressemble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "data source=.\SQLEXPRESS;Integrated Security=SSPI;initial catalog=Db_Customs;MultipleActiveResultSets=True"

  6. #6
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    regarde de ce coté ci:
    http://www.connectionstrings.com/sql-server-2008

    Dans ta chaine de donnexion actuelle, tu lui dis de passer en mode SSPI, ce qui signifie que l'utilisateur courant doit avoir les droits d'accéder à la base, sauf que, comme tu dois être en mode anonyme, l'utilisateur courant est NITRO\ASPNET.

    Donc, soit tu changes ta chaine de connection, soit tu passes sur un autre mode d'authentification

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut
    Merci Philippe,

    L'administrateur réseau a créé un user "test" dans mon sql server qui a tout les droits sur ma base de données(je vais peut etre le limiter par la suite). J'ai ensuite modifié ma connection string de la maniere suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connectionString="data source=NITRO\SQLEXPRESS;Initial Catalog=Db_Customs;User Id=test;Password=password"
    Donc simple mais ça marche. Il faut par contre que ce user "test" ai tout les droits sur la base ("owned" me semble-t-il). Sans doute à cause du code first qui impose de creer la base de données au lancement de l'application.

    Il me reste encore un probleme de droit. A un moment dans mon code j'utilise un composant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using Word;
    using System.Reflection;
    qui me permet de creer et d'enregistrer des documents word avec un template donné. Ca marchait bien dans le serveur de VS mais quand je passe sur le localhost, il me met une erreur:

    Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005 Accès refusé. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).
    Je suis en train de regarder pour resoudre cette erreur mais je trouve souvent des post qui disent que de creer un doc Word coté serveur est "suicidaire" et "non-géré"...donc y a t'il une autre solution pour créer dans un répertoire donné sur le serveur un doc Word avec un template?

  8. #8
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par john85 Voir le message
    Je suis en train de regarder pour resoudre cette erreur mais je trouve souvent des post qui disent que de creer un doc Word coté serveur est "suicidaire" et "non-géré"...donc y a t'il une autre solution pour créer dans un répertoire donné sur le serveur un doc Word avec un template?
    Si c'est du word 2003, npoi, sinon, en word 2007, openXML

    Pour ce qui est de l'utilisateur et de ses droits, si ta base existe déjà, je pense que tu peux diminuer ses droits sans trop de pb (a verifier, je suis pas un expert en EF)

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  9. #9
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut Déploiement réelle sur un serveur Windows R2
    Bonjour,

    J'ai profité de la presence de l'administrateur réseau pour commencer le vrai déploiement de l'application. Nous avons creer un site sur le IIS serveur...dans ces moments, j'aimerais vraiment avoir une doc sur le déploiement, c'est la pire phase du développement d'une application, surtout MVC3. Donc on a créé un repertoire virtuel et nous avons configuré IIS comme je l'avais fait en local. Il a mis les droits qui allaient bien, et quand je l' execute j'ai l'erreur décrite dans cet article:
    http://drew-prog.blogspot.com/2011/0...pp-to-web.html

    Donc je commence à chercher les dll manquantes..je n'ai que System.Web.MVC, System.Web.Helpers et System.WebPages. Donc je me demande où trouver les dll manquantes? je les ai finalement trouvées dans:
    C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies et e les ai bêtement copié dans mon projet dans le /bin...toujours la même erreur.

    J'aimerais publier l'application, pour de bon(pas en mode debugging...si?), n'y a t'il pas une procédure de déploiement à respecter autre qu'un simple copier/coller du dossier de projet Visual Studio?

  10. #10
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par john85 Voir le message
    J'aimerais publier l'application, pour de bon(pas en mode debugging...si?), n'y a t'il pas une procédure de déploiement à respecter autre qu'un simple copier/coller du dossier de projet Visual Studio?
    Normalement, l'idée, c'est de publier ton application dans un répertoire, et de copier ton répertoire publié, ou d'utiliser le déploiement web si tu utilises VS 2010


    Question bête, tu as la bonne version du framework, sur le serveur ?

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  11. #11
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut
    oui, j'ai installé la version 4 du framework ASP.NET? , la meme que celle sur laquelle est basée mon appli. J'ai également fait pointé l'application vers la dll aspnet_isapi.dll.

    J'arrive à déployer l'application sur le serveur distant de la même maniere que je le faisait avec mon localhost de IIS, en lançant l'appli via F5 en mode debug. Meme quand j'arrete Visual Studio, l'appli continue de tournée, mais elle est très lente, notament lors du chargement de la base de données...je me vois mal laisser ça comme ça.

  12. #12
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut
    J'ai les droits sur le serveur distant cible où je veux installer l'application.
    J'ai publié mon application en utilisant visual Studio: "Publish Web">Publish Method => File System et j'ai déplacé le dossier résultant sur mon serveur. J'ai bien la premiere page de mon application MVC, hiphip mais quand je clique sur un lien du menu(qui est un lien vers une action d'un controller) il me renvoi une erreur 404 page introuvable ...Donc je ne comprends pas pourquoi il me trouve la premiere page, ça veux dire qu'il a été chercher dans Home/Index et donc qu'il connait le modele MVC3 puis quand je clique sur le lien, il ne sait plus ou aller..trou de mémoire de IIS? Si quelqun a déjà déployer une application MVC3 (j'ai pas l'impression que ça existe), qu'il se manifeste,s'il vosu plait allez, j'y retourne

    Edit: J'ai une arborescence bizarre quand il me génère l'application:
    -app_code qui contient un fichier Content.cshtml
    -bin qui contient les dll
    -Content qui contient mes images, css,etc
    -Scripts qui contient mes fichier .js
    -Views: les vues
    -Global.asax qui ne contient qu'une ligne avec une balise xml dans laquelle on peut voir "codeBehing=Global.asax.cs" mais j'imagine que c'est pôur masquer les informations et que mon global.asax contient bien les redirections...je crois
    -packages.config
    -Web.config

    Voila, donc comme vous le voyez, il ne m'a pas gardé le repertoire des controlers ni celui des modeles mais quand je les ajoute à la main, le resultat est le meme, page introuvable, alors que lorsque je passe par VisualStudio et que j'execute l'application sur ce meme serveur: les redirections sont bien effectives...

    J'ai mon dossier VisualStudio/Project/GestionCustoms qui est le dossier source(virtual repertory) de IIS et qui fonctionne bien via visual studio. Je copie son contenu, je le mets dans un autre repertoire que je fais pointé comme rep virtuel dans IIS: la page d'accueil fonctionne mais pas de redirection! Donc Visual Studio fait quelque chose de plus quand il lance l'application sur le serveur,mais quoi?

  13. #13
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut
    Je tourne en rond, donc je fait une demande plus générale, quelle méthode de déploiement utilisez-vous pour une application ASP.NET MVC3 sur un serveur qui est à l'entreprise(et donc sur lequel j'ai les droits ou je peux les demander)?

    Bonne journée

  14. #14
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 58
    Points
    58
    Par défaut Rewriting URL
    J'ai réussi ! Donc j'avais ma page d'accueil mais le lien avec les autres pages m'indiquait un joyeux 404 "page not found". Donc ce n'était pas le MVC3 en cause, mais la redirection d'URL. En fait la version sur le serveur est la 6, un peu differente de la 5.1 et la petite case "vérifier l'existence du fichier" est située à un autre endroit, et cette derniere était cochée! ce qui veux dire que quand j'appelais l'action "/GererDemande/creer" il cherchait un fichier "creer" et bien sur, un tel fichier sans extension n'existe pas.
    J'ai donc décoché cette case et...ben ça marche, en fait c'est plutôt normal, je suis blasé.
    Donc désolé pour le Post à rallonge, je vais maintenant nettoyer tout ça,

    Bonne journée!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XBAP] Déploiement d'un développement en XBAP sur un serveur IIS
    Par pascaldengis dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 17/02/2011, 16h09
  2. ASP ne tourne pas sur mon serveur IIS
    Par Germain123 dans le forum ASP
    Réponses: 3
    Dernier message: 08/09/2005, 21h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo