나는 여러 곳WebMatrix WebPages 환경에서 내 사이트가 상태 코드 404의 기본 오류 페이지를 인식하도록 할 수없는 이유는 무엇입니까?
에서 본[여기에 이전 질문에서] How can I make a custom error page in ASP.NET web-pages with WebMatrix?
설정하는 방법 주어진에 대한 사용자 지정 오류 페이지를 강제로 web.config 파일을로 상태 코드 (내가 라고 생각하면은 "500"과 "404"입니다.)
나는 이것을 web.config XML의 <system.web>
요소로 사용하고 있습니다.
<system.web>
<compilation debug="true" targetFramework="4.0"><assemblies><add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /></assemblies></compilation>
<customErrors mode="On">
<error statusCode="500" redirect="~/Error.cshtml" />
<error statusCode="404" redirect="~/Error404.cshtml" />
</customErrors>
</system.web>
상태 코드에 대한 사용자 지정 오류 페이지, "500"보통 서버 쪽 오류에 잘 드실 수 있지만, 어떤 이유에 상관없이 내가 뭘, 내가 정의를 얻을 수가 수 없습니다 예를 들어 깨진 링크가 페이지에서 클릭되면 상태 코드 "404"에 대한 오류 페이지가 표시됩니다. 대신, 그냥 정상적인 "404, 리소스를 찾을 수 없습니다"기본 페이지를 보여줍니다.
<error>
태그의 순서를 변경하려고했는데 (은이어야합니다.하지만 알 수 있듯이, 나는 합리적인 방법으로 시도해 보았습니다.).
이 모든 것이 어떻게 작동하는지 오해하고 있습니까? 아니면 단순히 구성/구문을 어떤 식 으로든 잘못 이해하고 있습니다.
-------------------------------- 업데이트 ------------ ----------------------------
정상적인 연결이 끊어지면 내 맞춤 404 페이지가 정상적으로 작동합니다. 그러나, 나는 그것에 .cs
파일을 생성하는 특정 HTML 파일이 있습니다.
이 그것을 전체 내용의 것 : 데이터베이스에서 온 페이지에 표시하는 것에 대해
@Html.Raw(ContentGenerator.Generate("CityCouncil"))
값을, 그들은 문자열에 추가로 인코딩하고 있습니다 페이지에 기록됩니다. C# 문자열에 끊어진 링크가 있으면 기본 오류 페이지가 표시되지 않습니다. 이것이 왜 변화를 가져야 하는가? 내 생각 엔 타이밍상의 문제이며, C#이 페이지에 HTML을 쓰게되면 web.config 파일은 더 이상이 링크 나 다른 것에 영향을 미치지 않습니다.
이러한 링크에 대한 기본 오류 페이지를 계속 유지할 수있는 방법이 있습니까?
URL에 확장 기능을 추가하면 error404.cshtml 파일이 제공됩니까? 예 : htp : // locahost :/doesntexist.cshtml –
@MikeBrind 예, 직접 경로를 지정하면 정상적으로 나타납니다. – VoidKing