Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: url rewriting vb.net

  1. #1

    url rewriting vb.net

    Ciao ragazzi,
    sto cercando di capirci qualcosa sull'url rewriting.
    Dopo aver studiato un bel pò di link ho fin'ora realizzato questo, ma mi porta un errore che non riesco a risolvere, spero possiate aiutarmi.

    Ho come prima cosa creato una classe chiamata url_re.vb

    codice:
    Imports Microsoft.VisualBasic
    Imports System
    Imports System.IO
    Imports System.Web
    Imports System.Web.UI
    
    
    Public Class url_re
        Implements IHttpHandler
    
        Public ReadOnly Property IsReusable() As Boolean Implements System.Web.IHttpHandler.IsReusable
            Get
                Return True
            End Get
        End Property
    
        Public Sub ProcessRequest(ByVal context As HttpContext) Implements System.Web.IHttpHandler.ProcessRequest
            Dim url As String = context.Request.Path.ToLower() ' ignora il dominio e la querystring
    
            ' il pezzo iniziale dell'url
            Dim baseUrl As String = "content/"
            If url.IndexOf(baseUrl) = -1 Then
                Return
            End If
    
            url = url.Substring(url.IndexOf(baseUrl) + baseUrl.Length)
            If url.IndexOf("/") = -1 Then
                Return
            End If
    
            ' prendo solo i pezzi che mi interessano
            url = url.Substring(0, url.LastIndexOf("/"))
    
            ' prendo le informazioni dall'url
            Dim categoryID As String = Nothing
            Dim ID As String = Nothing
    
            ID = url.Split("/"c)(0)
            categoryID = url.Split("/"c)(1)
    
            ' eseguo la richiesta alla pagina vera
            context.Server.Execute(String.Concat("~/prodotti.aspx?ID_cat=", ID, "&ID_prod=", categoryID), False)
    
        End Sub
    End Class
    Poi ho modificato il web.config aggiungendo tra gli httphandler il seguent codice:

    <add verb="*" path="~/prodotti*.aspx" type="Url_re, App_Code" />

    Ho messo App_Code in quanto la classe si trova in quella cartella.

    A questo punto se provo a fare l'anteprima ottengo questo errore:
    Impossibile caricare il tipo 'Url_re' dall'assembly 'App_Code'.

    girando unpò ho capito (credo...) che è necessario creare una dll della classe appena creata.
    Per fare ciò allora ho aperto Esegui e ho scritto il seguente comando:
    C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc.e xe /target:library /out:e:\website\storevioletta\Bin\url_re.dll e:\website\storevioletta\App_Code\url_re.vb

    ma anche se parte il prompt per un secondo poi non mi ritrovo la dll che dovrebbe avermi creato...

    A questo punto non so proprio piu che fare...spero possiate aiutarmi.
    Grazie mille

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    <add verb="*" path="~/prodotti*.aspx" type="NomeSolution.Url_re, NomeSolution" />

    type vuole il nome della classe ed il nome dell'assembly, che di solito corrisponde al nome della solution

    prova cosi'

  3. #3
    Ciao,
    ho provato così:

    <add verb="*" path="~/prodotti*.aspx" type="storevioletta.Url_re, storevioletta" />

    ma adesso l'errore è differente:
    Impossibile caricare il file o l'assembly 'storevioletta' o una delle relative dipendenze. Impossibile trovare il file specificato.

    per nome solution tu intendi il nome della directory virtuale creata con IIS?

    Se è così, la modifica è corretta, ma come ti dicevo c'è unnuovo errore.

    Grazie mille

  4. #4
    ok allora il problema era relativo alla maiuscola.
    invece di Url_re dovevo scrivere url_re:

    <add verb="*" path="~/prodotti*.aspx" type="url_re, App_Code" />

    così infatti non mi dà errore, però non ottengo il rewrite dell'url.
    Cosa manca al codice che non ho contemplato?

    Grazie mille

  5. #5

  6. #6
    appunto eheheh avevo verificato un secondo prima
    però come dicevo sopra manca ancora qualcosa? :master:

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    metti un break al ProcessRequest e vedi cosa fa ...

    (comunque che accetti App_Code mi sembra strano)

  8. #8
    Ciao djciko,
    perdonami ma come metto un break al processrequest?

    Il codice è in vb.

    Come ti ho detto mi sto un pò perdendo in questo procedimento, e davvero non mi è ancora molto chiaro il funzionamento...
    Se avessi qualche suggerimento su come aggiustare il tutto te ne sarei grato.

    Grazie mille

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    la riga del metodo ProcessRequest, la prima...un break per il debug...

    stai usando visual studio no ?

  10. #10
    no visual web developer...
    e in tutta sincerità non so come impostare il break di cui parli...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.