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ébutant] ASP.NET MVC2 - Erreur 404


Sujet :

ASP.NET MVC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut [Débutant] ASP.NET MVC2 - Erreur 404
    Bonjour,
    ayant de bonnes connaissances CSharp/winform, je me suis lancé aujourd hui dans ma premiere appli WEB en ASP. Pour se faire j'ai crée un projet MVC2 dans VS2010. et j'ai suivi le tutoriel ASP .Net ici:
    http://msdn.microsoft.com/fr-fr/asp.net/dd627541.aspx
    en remplacant la couche ADO par une couche LinQ to SQL suivant le tuto suivant:
    http://dotnet.developpez.com/mvc/mvc-linq-to-sql/

    je ne connais ni LinQ ni SQL.

    Tout se passe bien à la compilation, mais lorsque je lance mon appli en debogage, je me retrouve avec une erreur 404 - ressource indisponible.

    Je me demande s'il ne me manque pas qqch entre mon web.config et le linq que j'ai bien pu faire.

    Mon modele est assez simple: J'ai une table Collaborateurs, je souhaite simplement en afficher la liste dans ma methode index.

    ci-join mon web.config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?xml version="1.0" encoding="utf-8"?>
     
    <!--
      Pour plus d'informations sur la configuration de votre application ASP.NET, consultez
      http://go.microsoft.com/fwlink/?LinkId=152368
      -->
     
    <configuration>
      <connectionStrings>
        <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
          providerName="System.Data.SqlClient" />
        <add name="CollabDBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CollabDB.mdf;Integrated Security=True;User Instance=True"
          providerName="System.Data.SqlClient" />
      </connectionStrings>
     
      <system.web>
        <compilation debug="true" targetFramework="4.0">
          <assemblies>
            <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
          </assemblies>
        </compilation>
     
        <authentication mode="Forms">
          <forms loginUrl="~/Account/LogOn" timeout="2880" />
        </authentication>
     
        <membership>
          <providers>
            <clear/>
            <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
                 enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
                 maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
                 applicationName="/" />
          </providers>
        </membership>
     
        <profile>
          <providers>
            <clear/>
            <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
          </providers>
        </profile>
     
        <roleManager enabled="false">
          <providers>
            <clear/>
            <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
            <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
          </providers>
        </roleManager>
     
        <pages>
          <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
          </namespaces>
        </pages>
      </system.web>
     
      <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules runAllManagedModulesForAllRequests="true"/>
      </system.webServer>
     
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

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

    Une erreur 404 n'a rien à voir avec linq ou ta base de données: tu essaies juste de consulter une page qui n'existe pas(ou dans ton cas qui n'est sans doute pas routée).

    Il faudrait donnc que tu nous donnes plus d'infos, notament l'url que tu essaies de consulter.

    Envoie également ton global.asax, ou vérifie que ton registerRoute est correct.

    Enfin, donnes-nous ton arborescence de projet sur ton controlleur et tes vues.

    a titre d'exemple regarde http://nerddinnerbook.s3.amazonaws.com/Part4.htm

    Au fait en debug ti tu lances ton debugger en ayant selectionné une vue, tu auras forcément une erreur 404 car visual studio n'est pas configuré pour prendre en compte les routes.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut
    alors voici l'URL que mon navigateur ouvre automatiquement lorsque je fais deboguer:
    http://localhost:1034.

    voici mon fichier global.asax,cs (mon registerRoutes me semble OK)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
     
    namespace iCollabPortal
    {
        // Remarque*: pour obtenir des instructions sur l'activation du mode classique IIS6 ou IIS7, 
        // visitez http://go.microsoft.com/?LinkId=9394801
     
        public class MvcApplication : System.Web.HttpApplication
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
     
                routes.MapRoute(
                    "Default", // Nom d'itinéraire
                    "{controller}/{action}/{id}", // URL avec des paramètres
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Paramètres par défaut
                );
     
            }
     
            protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
     
                RegisterRoutes(RouteTable.Routes);
            }
        }
    }
    Quand à l'arborescence, j'ai tout gardé en standard tel qu'auto généré.

    Mon controller se trouve donc dans le répertoire Controller/ICollabController.cs
    et ma vue : Views/Icollab/Index.aspx

    je regarde ton lien voir ce que je peux voir de divergent avec chez moi...
    merci,

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut
    Bon ok j'ai compris, ca vient de l'URL que j'utilise en fait.

    Je viens de fermer ma VM j'essaye ca ce soir de chez moi ou demain matin.

    Merci

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut
    Bon effectivement, mon probleme venait bien de l'URL. Merci pour ton lien.

    Par contre je ne comprends pas tres bien ou est fait le mapping vers mon controlleur. Je vois bien mon fichier global.asax, mais je ne vois que le code suivant:
    controller = "Home"

    alors comment mon controller ICollabController est mappe sur l'url /Icollab, il semble l expliquer plus ou moins sur ton lien, mais je ne comprends pas le mecanisme "detaille".

    De plus comment est defini le le port ? je vois sur ton exemple: localhost:64643,
    mais chez moi c est: localhost:1034
    je suppose que cela doit pouvoir se "configurer qqpart, mais je n ai rien vu dans le code ou les fichiers de config dans ce sens...

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Re,

    Ton port peut etre spécifié dans la configuration du projat du site: clic-doit sur ton site, affichier les propriéts, et aller dans l'onglet web.

    Le mécanisme de mappage est fait automatiquement via mvc, dont il est normal que tu ne la vois pas.

    En admettant que ton controlleur s'appelle ICollabController que tu as une méthode de get ConsulterMonCollab ton url devrait etre:

    ICollab/ConsulterMonCollab/1
    controlleur/Methode/id

    Sur une méthode sans id cela donne:
    ICollab/ListerCollab
    controlleur/Methode

    C'est un peu plus clair ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut
    Oui merci

    j ai vu la config du port sur le projet, j'ai egalement compris pour le mapping. J'imagine que le modele MVC n'est en fait qu'un "template" et que cela doit etre defini dans du code genre, mais je n'ai pas trouve l'algo.

    Merci pour votre aide en tout cas.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/11/2009, 11h05
  2. [aJaX/Asp.net] aspnethostingpersmission erreur
    Par NameX dans le forum AJAX
    Réponses: 1
    Dernier message: 27/10/2009, 11h14
  3. Réponses: 2
    Dernier message: 02/01/2008, 00h40
  4. [débutant] Asp.net et c#
    Par casafa dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/12/2007, 10h59
  5. ASP.NET + opendialog erreur exeption thread
    Par bibifoc dans le forum ASP.NET
    Réponses: 1
    Dernier message: 22/01/2007, 21h45

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