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 Discussion :

UrlRewriting Local vs Remote


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 87
    Points : 186
    Points
    186
    Par défaut UrlRewriting Local vs Remote
    Sur un nouveau petit projet que j'écris en ce moment histoire de faire le saut entre PHP et C# j'essaie de jouer avec l'URLRewriting.

    Selon ce que j'ai pu lire sur le sujet il suffit d'écrire trois lignes de plus dans le web.config ( le <httpModule> <add /> </httpModule> ) et dans une nouvelle classe implémenter IHttpModule.

    J'ai pu faire tout ça pour l'instant et toujours pour l'instant en local tout semble bien fonctionner. Après les tests je fait un build et l'URL Rewrite fonctionne à merveille. J'envoie le tout par ftp et c'est là que ça part en sucette . J'ai droit à une jolie erreur 404...

    En gros les codes importants:

    web.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        <system.web>
            <customErrors mode="On">
                <error statusCode="404" redirect="~/Error404.aspx" />
            </customErrors>
            <httpModules>
                <add name="HttpRewriteModule" type="messengertricks.UrlRewriterModule, messengertricks"/>
            </httpModules>
    </system.web>
    messengertricks.UrlRewriterModule :
    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
     
    namespace messengertricks
    {
        public class UrlRewriterModule : IHttpModule
        {
            public void Init(HttpApplication context)
            {
                context.BeginRequest += context_BeginRequest;
            }
     
     
            public void context_BeginRequest (object sender, EventArgs args)
            {
                HttpApplication application = sender as HttpApplication;
                HttpContext context = (application == null) ? null : application.Context;
                if (context != null)
                {
                    HttpRequest request = context.Request;
                    string urlpath = request.Url.ToString();
     
                    if (urlpath.Contains("imgsvc"))
                    {
                        string[] urlparams = urlpath.Substring(urlpath.IndexOf("imgsvc")).Split('/');
     
                        if (urlparams.Count() >= 4)
                        {
     
                            string tpl = urlparams[1].Substring(1);
                            string svc = urlparams[2].Substring(1);
                            string ident = urlparams[3];
     
                            context.RewritePath(String.Format("~/Svc.aspx?tpl={0}&svc={1}&Ident={2}", tpl, svc, ident));
     
                        }
                    }
                }
            }
     
            public void Dispose()
            {
     
            }
        }
    }
    et svc.aspx là où c'est redirigé:
    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
     
    namespace messengertricks
    {
        public partial class Svc : System.Web.UI.Page
        {
            DcDataContext db = new DcDataContext(ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString);
     
            protected void Page_Load(object sender, EventArgs e)
            {
                string[] TemplateTypes = new string[1] { "SmallOnlineIcon" };
                string[] ServiceType = new string[] { "MSN", "YIM", "AIM", "Skype", "ICQ", "Gchat" };
     
                int ident = Int32.Parse((Request.QueryString["Ident"] == null) ? "0" : Request.QueryString["Ident"]);
                string tpl = Request.QueryString["tpl"];
                string svc = Request.QueryString["svc"];
     
                if (string.IsNullOrEmpty(tpl) || string.IsNullOrEmpty(svc) || string.IsNullOrEmpty(ident.ToString()))
                {
                    throw new HttpException(404, "La requête demandée est indisponible ou n'existe pas.");
                }
                else
                {
                    var query = from q in db.mt_handles
                                where q.id == ident
                                select q;
     
                    if (query.Count() != 0)
                    {
                        var row = query.First();
     
                        Response.Redirect("http://messenger.services.live.com/users/" + row.@params + "/presenceimage/");
                    }
                    else
                    {
                        throw new HttpException(404, "La requête demandée est indisponible ou n'existe pas.");
                    }
                }
            }
        }
    C'est pas très clean mais bon, j'espère que vous pourrez m'aider sur ce point.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    Salut à toi!
    Je ne pas si c'est le même problème, mais moi, j'ai du toucher au IIS pour que cela fonctionne.

    Dans la configuration de ton application (ton site) dans le IIS, j'ai ajouté
    "e:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll"
    dans la partie "Wildcard applications maps" et décocher "Verify that file exist"
    (je suis sous windows server 2003)

  3. #3
    Membre habitué
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 87
    Points : 186
    Points
    186
    Par défaut
    Intéressant. Je suis sur un serveur mutualisé, j'imagine donc que ceci serais impossible. Il va falloir que je consulte mon hébergeur pour voir ça. À la limite il y aurait peut être une section sous dotnetpanel pour le faire mais je n'ai rien vu à ce sujet encore.

    [edit] À bien y penser, mon blog utilise subtext qui lui même utilise l'URL Rewriting. Donc je vais investiguer sur ce sujet.

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu peux regarder ici pour configurer iis : http://nico-pyright.developpez.com/t...ng/#Lconfigiis

  5. #5
    Membre habitué
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 87
    Points : 186
    Points
    186
    Par défaut
    Ça aurait été envisageable en VPS ou dédié mais dans mon cas actuel je suis en mutualisé. Ça change beaucoup :/

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    Citation Envoyé par Chasseur d'étoiles Voir le message
    Ça aurait été envisageable en VPS ou dédié mais dans mon cas actuel je suis en mutualisé. Ça change beaucoup :/
    Je ne sais comment fonctionne le mutualisé, mais la modif qui doit être faite, c'est juste pour ton site

  7. #7
    Membre habitué
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 87
    Points : 186
    Points
    186
    Par défaut
    donc à demander à l'hébergeur je suppose.

Discussions similaires

  1. Studio local - studio remote - projet
    Par michelS dans le forum Installation, migration et administration
    Réponses: 0
    Dernier message: 18/04/2012, 09h01
  2. [EJB3] Interface locale et remote
    Par rintchu dans le forum Java EE
    Réponses: 1
    Dernier message: 27/04/2009, 15h46
  3. [EJB] [Bonnes Pratiques] Interfaces home/locale et remote
    Par Methode dans le forum Java EE
    Réponses: 2
    Dernier message: 19/02/2008, 17h59
  4. [EJB] Probleme d'architecture Remote/Local
    Par bourbaki2003 dans le forum Java EE
    Réponses: 4
    Dernier message: 16/08/2006, 12h50
  5. Accès à pls bd local et remote en interbase
    Par Abidou dans le forum InterBase
    Réponses: 4
    Dernier message: 10/01/2005, 14h14

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