2010-01-02 3 views
0

Application_BeginRequest에서 Context.RewritePath를 사용하여 내 사용자를 친숙하게 만들었습니다. 내 로컬 컴퓨터에서는 문제없이 작동하지만 서버 (공유)에서는 404 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있을지 생각해?URL 재 작성이 서버에서 작동하지 않습니다.

감사합니다.

답변

0

실행중인 IIS 버전은 무엇입니까? 6?

매핑하려는 URL을 알고있는 한,이 작업을 수행하려면 실제 존재해야합니다.

예 :? /Page/Television/default.aspx 페이지 /에 ID를 매핑해야 = 당신은 폴더 페이지 /를 televsion 및 솔루션에서의 default.aspx를 만들 필요가 5

. Default.aspx를이 <퍼센트 페이지> 카시니에서

0

은 Application_BeginRequest 모든 파일에 대해 실행이. IIS에서, 그것은 그러한 *에서 .aspx 파일로 관리되는 처리기와 파일을 실행 %.

"이상을 포함 할 수 없습니다

일반적인 경우를 들어, 당신은 당신의 자신의 HttpModule을 만들어야합니다 여기에 (내 책에서 비슷한 하나의 기반으로 : Ultra-Fast ASP.NET) : 예입니다.

using System; 
using System.Web; 

namespace Samples 
{ 
    public class RewriteExample : IHttpModule 
    { 
     public void Init(HttpApplication context) 
     { 
      context.BeginRequest += OnBeginRequest; 
     } 

     void OnBeginRequest(object sender, EventArgs e) 
     { 
      HttpApplication application = (HttpApplication)source; 
      HttpContext context = application.Context; 
      // re-write URL here... 
     } 

     public void Dispose() 
     { 
     } 
    } 
} 
다음

의 web.config에 등록 (이가 IIS의 경우 Cassini를 약간 사용함) :

<system.webServer> 
    <modules> 
    . . . 
    <add name="RewriteExample" type="Samples.RewriteExample" /> 
    </modules> 
</system.webServer> 
+0

어떻게 HttpModule을 만들 수 있습니까? 예를 들어 주시겠습니까? 감사합니다. – user220994

+0

예가 추가되었습니다. – RickNZ

관련 문제