PDA

View Full Version : ASP.NET 3.5 URL ROUTING



samin_s
چهارشنبه 21 دی 1390, 23:51 عصر
من کارهای زیر رو انجام دادم اما تابع

public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var display = BuildManager.CreateInstanceFromVirtualPath(_virtua lPath, typeof(Page)) as IDisplay;
return display;
}

فراخوانی نمی شود و 404 میده.لطفا راهنماییم کنید.تشکر

1:افزودن کدهای زیر به web.config

<system.web>
...
<httpModules>
...
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
</system.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
...
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</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>

</configuration>




2: افزودن تابع در global.asax

void Application_Start(object sender, EventArgs e)
{

RegisterRoutes();
}

private static void RegisterRoutes()
{
System.Web.Routing.RouteTable.Routes.Add(
"SaveUser", new System.Web.Routing.Route("SaveUser",
new RouteHandler("~/Register.aspx")));

}

3 : ایجاد RouteHandler.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Routing;
using System.Web.Compilation;
using System.Web.UI;

public class RouteHandler : IRouteHandler
{
public RouteHandler()
{
}

public RouteHandler(string virtualPath)
{
_virtualPath = virtualPath;
}

public IHttpHandler GetHttpHandler(RequestContext requestContext)
{

var abc = BuildManager.CreateInstanceFromVirtualPath(_virtua lPath, typeof(Page)) as IDisplay;
return abc;
}

string _virtualPath;
}


4 : ایجاد کلاس IDisplay.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Implements IHttpHandlers and contains uniqueName
/// </summary>
public interface IDisplay : IHttpHandler
{

}
5 :

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Redirect("~/SaveUser");
}
}

mahmood_4246
پنج شنبه 22 دی 1390, 00:11 صبح
پروژه یا فایلت رو بذار

samin_s
پنج شنبه 22 دی 1390, 00:33 صبح
ممنون
در واقع نمی تونم کل پروژه رو بزارم.خواستم صفحات مربوط و جدا کنم و بزارم که متوجه شدم بدون ایراد اجرا میشه!!
ولی در پروژه ی کلی هنوز هم مشکل برقراره!مشکل از چی میتونه باشه؟

crazy_1892
پنج شنبه 22 دی 1390, 00:36 صبح
http://barnamenevis.org/showthread.php?317763-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-url-routing-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA-4

mahmood_4246
پنج شنبه 22 دی 1390, 00:45 صبح
crazy_1892 جان (http://barnamenevis.org/member.php?92802-crazy_1892)

دات نت 3.5 خواستن .. زمین تا آسمون پیاده سازی Routing فرق داره تو دات 3.5

samin_s
پنج شنبه 22 دی 1390, 00:53 صبح
من نمی فهمم فایل web.config و global.asax که تفاوتی نداشته! چرا داخل پروژه ی اصلی routing اعمال نمیشه !

hamid_shrk
پنج شنبه 22 دی 1390, 10:03 صبح
crazy_1892 جان (http://barnamenevis.org/member.php?92802-crazy_1892)

دات نت 3.5 خواستن .. زمین تا آسمون پیاده سازی Routing فرق داره تو دات 3.5
تو همون تاپیک یک پست هست که روتینگ تو دات نت های پایین تر رو هم گفته

samin_s
جمعه 23 دی 1390, 01:00 صبح
مشکلم اینه که این سایت راه اندازی شده و ابتدای راه نیست که بخوام تو MVC ببرمش.
مثل اینکه روش کارم درسته و ایراد از سایر قسمت ها بوده.
سپاس از همه

samin_s
چهارشنبه 05 بهمن 1390, 21:40 عصر
با localhost عمل Routing انجام میشه اما روی هاست که up میکنم error " 500 - Internal server error.

There is a problem with the resource you are looking for, and it cannot be displayed.



" رو میده!!!!!!

shahrooz_tk
پنج شنبه 06 بهمن 1390, 10:14 صبح
اگه رو لوکال مشکلی نداره چک کن ببین سرورت ویندوز 2003 یا 2008 .
منم همچین مشکلی رو داشتم .بعد از کلی این ور اونور فهمیدم که routing رو 2003 کار نمی کنه . بعد از اینکه روی یه سرور دیگه با 2008 امتحان کردم بدون هیچ مشکلی کار کرد .

aserfg
پنج شنبه 06 بهمن 1390, 12:03 عصر
URL ROUTING در دات نت 3.5 با 4 متفاوت است جدا از این مساله در دات نت 3.5 نمی توان آدرسهایی بدون پسوند داشت . و برای محقق شدن این مساله باید یک HOTFILE روی سرور نصب شود . که در SHARED HOST ممکن نیست .

samin_s
پنج شنبه 06 بهمن 1390, 15:38 عصر
ویندوزش 2008 ، ولی مثل اینکه تو IIS روی فریم ورک 2 تنظیم شده!!!!!!!!!!!!!!
ولی فریم ورک 3.5 نداره فقط 4 !!!!!
چه کار کنم حالا؟

samin_s
پنج شنبه 06 بهمن 1390, 15:41 عصر
سرور اختصاصی دارم.
در مورد HOTFILE بیشتر توضیح میدین؟

alidaniyali
پنج شنبه 06 بهمن 1390, 23:28 عصر
ویندوزش 2008 ، ولی مثل اینکه تو IIS روی فریم ورک 2 تنظیم شده!!!!!!!!!!!!!!
ولی فریم ورک 3.5 نداره فقط 4 !!!!!
چه کار کنم حالا؟

درست فقط 2 داره و 4 داره . برای اجرای 3.5 باید روی 2 باشه . بدون مشکل کار می کنه .
فقط کافیه ویندوز شما 2008 باشه احتیاج به هیچ چیز دیگه ای نیست . صفحات شما هم میتونه بدون پسوند باشه . روشی که در لینک زیر توضیح داده شده فکر کنم کاملا جواب گوی کار شما :
http://www.cstruter.com/blog/276

samin_s
جمعه 07 بهمن 1390, 00:29 صبح
درست فقط 2 داره و 4 داره . برای اجرای 3.5 باید روی 2 باشه . بدون مشکل کار می کنه .
فقط کافیه ویندوز شما 2008 باشه احتیاج به هیچ چیز دیگه ای نیست . صفحات شما هم میتونه بدون پسوند باشه . روشی که در لینک زیر توضیح داده شده فکر کنم کاملا جواب گوی کار شما :
http://www.cstruter.com/blog/276

درسته،بدون مشکل کار کرد.سپاس فراوان