سؤال

أحاول إعداد بعض عناوين المواقع الصديقة على موقع SharePoint.وأنا أعلم أنني يمكن أن تفعل ASP.Net 2.0 ودية عناوين المواقع باستخدام RewritePath, ولكن كنت أتساءل إذا كان من الممكن الاستفادة من النظام.ويب.التوجيه الذي يأتي مع ASP.NET 3.5 المزود بحزمة الخدمة SP1.

أعتقد أنني عرفت كيف أحصل على جدول التوجيه تحميلها ، ولكن ليس واضحا على ما طريقة الاستخدام للحصول على الصحيح IHttpHandler تمر بها.

وذلك بفضل!

هل كانت مفيدة؟

المحلول

انتهى بي الأمر مع ما كان ريان:

var route = new Route("blah/{*path}", new MyRouteHandler());
RouteTable.Routes.Add(route);
public class MyRouteHandler : IRouteHandler
{    
public IHttpHandler GetHttpHandler(RequestContext requestContext)    
{        
     //rewrite to some know sharepoint path
     HttpContext.Current.RewritePath("~/Pages/Default.aspx");

     // return some HTTP handler here  
     return new DefaultHttpHandler();  

}}

ويبدو أن العمل على ما يرام بالنسبة لي.

نصائح أخرى

لقد طلب مني أن ننظر إلى هذا كجزء من نقطة مشاركة عملية التقييم.

ما أفهمه هو أن أوري قالب هو في الأساس اسم المضيف تليها متكررة بنية المجلد.

هذا هو أكثر تعقيدا من نقطة مشاركة اقتطاع uri في 255 حرفا.حتى إذا كان لديك لا سيما العميق أو مطول بنية المجلد الخاص بك ثم uri يمكن أن تصبح غير صالحة.

كنت أفكر أساسا prettifying / التنظيف uri من خلال اتباع الإنسان للقراءة الاتفاقية وتحويلها إلى نقطة مشاركة الاتفاقية.أنا.هـ:

http://myhostname.com/docs/human-resources/case-files/2009/reviews/ed-blackburn.docx

يحول إلى حصة هذه النقاط:

http://myhostname.com/human%20resources/case%20files/2009/reviews/ed%20blackburn.docx

أي الإضافية الخدمات المطلوبة يمكن السيطرة عليها من قبل المراقب المالي.

إذا كان أطول من 255 حرفا نوع من tinyurl النهج الأولي الاقتراح.

ينبغي أن يكون سهلا كما في أدناه.

var route = new Route("blah/{*path}", new MyRouteHandler());
RouteTable.Routes.Add(route);

public class MyRouteHandler : IRouteHandler
{
    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        // return some HTTP handler here
    }
}

ثم سجل النظام.ويب.التوجيه.UrlRoutingModule تحت HTTP وحدات في شبكة الإنترنت.التكوين و يجب أن تكون على ما يرام.

<add name="Routing" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top