none
Url Routing HTTP Error 404 - Not Found. RRS feed

  • Soru

  • Merhaba, Websitemde url routing kullanmak istiyorum. Herşey tamam gibi görünüyor ancak yinede yönlendirme olmuyor.

    HTTP yeniden yönlendirme aktif

    Framework 4.0 

    web.configde aynı zamanda aşağıdaki kodlarda ekli

      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true">
          <remove name="UrlRoutingModule"/>
          <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </modules>
        <handlers>
          <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web,
    Version=2.0.0.0, Culture=neutral,
    PublicKeyToken=b03f5f7f11d50a3a"/>
        </handlers>
      </system.webServer>


    olduğu halde hatta verdim yeni linkler Browserın sol alt kısmında doğru bir şekilde görünüyor ama tıkladığımda HTTP Error 404 - Not Found hatasını alıyorum.

    .asax

        void RegisterRoutes(System.Web.Routing.RouteCollection routes)
        {
            routes.MapPageRoute("Yazi","Yazi/{mid}/{MakaleBaslik}","~/Yazi.aspx");   
    
        }

    Default.aspx

    <h2 class="title"><a href='<%#string.Format("/Yazi/{0}/{1}",Eval("MakaleId"),Temizle.UrlCevir(Eval("MakaleBaslik").ToString())) %>'><%# Eval("MakaleBaslik")%></a></h2>

    Yazi.cs

            SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    
            SqlCommand sqlcmd = new SqlCommand("SELECT * from Makale Where MakaleId='" + Convert.ToInt32(RouteData.Values["mid"]) + "'", sqlcon);
    
    if (sqlcon.State == ConnectionState.Closed)
            {
                sqlcon.Open();
            }
            SqlDataReader sdr = sqlcmd.ExecuteReader();
            rptmak.DataSource = sdr;
            rptmak.DataBind();
            sdr.Close();
    
            if (sqlcon.State == ConnectionState.Open)
            {
                sqlcon.Close();
            }

    yardımcı olacak arkadaşlara teşekkür ederim.


    • Düzenleyen ÖmerFaruk 4 Eylül 2013 Çarşamba 15:21
    4 Eylül 2013 Çarşamba 15:19

Yanıtlar

  • Keşke herkez sizin gibi açıklayıcı şekilde sorsa sorularını, teşekkürler.

    Öncelikle herşey güzel yanlız şu kısım güzel olmamış;

    <h2 class="title"><a href='<%#string.Format("/Yazi/{0}/{1}",Eval("MakaleId"),Temizle.UrlCevir(Eval("MakaleBaslik").ToString())) %>'><%# Eval("MakaleBaslik")%></a></h2>

     bunun yerine;

    <h2 class="title"><asp:Hyperlink NavigateUrl='<%# GetRouteUrl("Yazi", new { @mid= Eval("MakaleId"), @MakaleBaslik= Eval("MakaleBaslik")})%>' runat="server" Text='<%# Eval("MakaleBaslik")%>' /></h2>

    şeklinde kullansanız daha şık olacak.

    Esas soruna gelecek olursak; Debug ederken urel'de sanal klasör varmı? Yani http://localhost:5213/projeadı/Default.aspx gibi mi? Eğer böyle ise urlrouting dosyaları sanal dizin değilde ana dizinde arayacak ve çalışmayacaktır. 

    Solution Explorer > ProjeAdı'na tıkladıktan sonra Properties penceresinden sanal dizin yerine /(slash) yazdıktan sonra denermisiniz.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    • Yanıt Olarak İşaretleyen ÖmerFaruk 4 Eylül 2013 Çarşamba 16:35
    • Yanıt İşaretini Geri Alan ÖmerFaruk 4 Eylül 2013 Çarşamba 17:52
    • Yanıt Olarak İşaretleyen ÖmerFaruk 4 Eylül 2013 Çarşamba 19:12
    4 Eylül 2013 Çarşamba 16:11
    Moderatör

Tüm Yanıtlar

  • Keşke herkez sizin gibi açıklayıcı şekilde sorsa sorularını, teşekkürler.

    Öncelikle herşey güzel yanlız şu kısım güzel olmamış;

    <h2 class="title"><a href='<%#string.Format("/Yazi/{0}/{1}",Eval("MakaleId"),Temizle.UrlCevir(Eval("MakaleBaslik").ToString())) %>'><%# Eval("MakaleBaslik")%></a></h2>

     bunun yerine;

    <h2 class="title"><asp:Hyperlink NavigateUrl='<%# GetRouteUrl("Yazi", new { @mid= Eval("MakaleId"), @MakaleBaslik= Eval("MakaleBaslik")})%>' runat="server" Text='<%# Eval("MakaleBaslik")%>' /></h2>

    şeklinde kullansanız daha şık olacak.

    Esas soruna gelecek olursak; Debug ederken urel'de sanal klasör varmı? Yani http://localhost:5213/projeadı/Default.aspx gibi mi? Eğer böyle ise urlrouting dosyaları sanal dizin değilde ana dizinde arayacak ve çalışmayacaktır. 

    Solution Explorer > ProjeAdı'na tıkladıktan sonra Properties penceresinden sanal dizin yerine /(slash) yazdıktan sonra denermisiniz.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    • Yanıt Olarak İşaretleyen ÖmerFaruk 4 Eylül 2013 Çarşamba 16:35
    • Yanıt İşaretini Geri Alan ÖmerFaruk 4 Eylül 2013 Çarşamba 17:52
    • Yanıt Olarak İşaretleyen ÖmerFaruk 4 Eylül 2013 Çarşamba 19:12
    4 Eylül 2013 Çarşamba 16:11
    Moderatör
  • Çok teşekkür ederim yardımınız için.

    Debug ederken url'de sanal klasör var. Şu anda bir sıkıntı yok çalışıyor herşey. Sanal dizin yerinde slashda var.

    Acaba hostta çalıştığında herhangi bir sıkıntı olur mu?

    4 Eylül 2013 Çarşamba 16:34
  • hostta ana dizine publish ederseniz sorun olmaz.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    4 Eylül 2013 Çarşamba 17:28
    Moderatör
  • @Önay bey,

    Aynı sorunu bende yaşıyorum. Sitenin ingilizce sürümünü yaptım. /en alt klasörde Url Routing çalışmıyor. 404 - File or directory not fund hatası veriyor. Url Routing metodu ana dizinde çalışıyor. 

    /en/index.aspx -- Çalışıyor

    /en/index -- Hata veriyor.

    Aşağıdaki 2 türüde denedim.

    routes.MapPageRoute("AnasayfaRoute", "index", "~/en/index.aspx");

    routes.MapPageRoute("AnasayfaRoute", "index", "~/index.aspx");

    Yardımcı olabilirmisiniz. Şimdiden teşekkürler


    27 Temmuz 2020 Pazartesi 06:51