2013-05-05 3 views
2

저는 재치가 있습니다. FastCGI를 통해 모노 아래에서 ASP.NET MVC 3 웹 사이트를 실행하려고하는데 카세트의 HTTP 처리기가 올바르게 등록되지 않습니다. 사이트는 http://www.tychaia.com/입니다.Mono MVC 3에서 HTTP 핸들러가 제대로 등록되지 않았습니다.

이상한 것은 : 그것은 내 로컬 컴퓨터에서 잘 작동

  • .
  • 사이트가 프로덕션 컴퓨터에서 xsp4 아래로 실행되면 제대로 작동합니다.
  • 사이트가 프로덕션 컴퓨터의 fastcgi-mono-server4에서 실행될 때 제대로 작동하지 않습니다.

상황은 내가 시도 :

  • 이 모두 올바른 FastCGI를 매개 변수 (그것이)에 전달되고 있는지 만드는 Nginx의 구성을 확인.
  • 모노 3.0.7 및 3.0.10. 친구는 3.0.7 이하에서 작동하지만 나에게는 주사위가 없습니다.

그것은이 특정의 Web.config 항목입니다 :

<add path="cassette.axd" verb="*" type="Cassette.Aspnet.CassetteHttpHandler, Cassette.Aspnet" /> 

(https://github.com/hach-que/Tychaia/blob/master/Tychaia.Website/Web.config#L47)

지금까지 내가 말할 수있는, 내가이 문제를 일으키는 두 가지 문제가

:

  • https://github.com/hach-que/Tychaia/blob/master/Tychaia.Website/Global.asax.cs#L20으로 명확하게 지정되어 있지만 MVC의 IgnoreRoute가 cassette.axd URL과 일치하지 않습니다 (un der 일반 XSP4).
  • 서버의 HTTP 처리기 경로 일치가 정확히 수행하는 것만 보입니다 (routes.IgnoreRoute("cassette.axd");을 수행하여) 문자열 "cassette.axd"에 명시적인 IgnoreRoute를 추가하면 다음을 제외하고 처리기로 전달됩니다. FastCGI에서 일치합니다. 사이트에서 MVC 등록을 모두 해제하더라도 핸들러는 cassette.axd과 일치하며 핸들러에 경로 정보가없는 것처럼 보입니다.
  • <add path="cassette.axd/*" verb="*" type="Cassette.Aspnet.CassetteHttpHandler, Cassette.Aspnet" />과 같은 항목을 추가하면 처리기에서 처리되기 시작하지만 일반적으로 해당 URL에서 응답하지 않습니다. 추가 URL 매개 변수가없는 것처럼 기본값을 가져옵니다 (HTTP 처리기 경로 일치에 의해 소비 된 것일 수도 있음).

FastCGI를이 설정이 현재하는 방식은 다음과 같습니다 단지 더 Nginx의 인스턴스 (I 여러 사이트를 실행하고 나는 고립을 유지하려면)에 역방향 프록시입니다

  • 홈페이지 Nginx의 인스턴스입니다.
  • http://tychaia.com/의 Nginx 인스턴스는 UNIX 소켓을 통해 FastCGI를 호출합니다.

다시이 문제는 XSP4에서는 발생하지 않으며 인 경우에만이 FastCGI에서 발생합니다. XSP4 인스턴스로 프록시를 리버스 할 수는 있지만 성능상의 이유로이 작업을 수행하는 것을 주저합니다.

여기에 누락 된 항목이 있습니까?

편집 : 다음은 작동해야하는 몇 가지 URL입니다.

그리고 당신은 IgnoreRoute 명시 적으로 지정과 함께 cassette.axd 경로가지도를한다는 것을 볼 수 있습니다 : 당신이 볼 수 있듯이, 그들은 대신 카세트 HTTP 핸들러의 StaticFileHandler을 타격 그 경로 만 :

당신도 그것의 끝에 슬래시를 넣어 경우가 작동하지 않습니다

편집 2 : 나는 사이트를 업데이트 바로 링크 /Content/main.css 파일이므로이 문제가 정렬되는 동안 사이트가 올바르게 표시됩니다. 브라우저에서 네트워크 요청을 확인하면 실패한 요청이 카세트 번들에 표시됩니다.

답변

3

나는 희망이 일어나는 이유에 대한 답을 얻기 위해, 모노 버그 추적기에 버그를 제기했다 :

https://bugzilla.xamarin.com/show_bug.cgi?id=12190

업데이트 :이 문제의 원인을 발견. OpenSUSE에서 모노와 XSP는 별도로 패키지됩니다. Mono를 3.0.10으로 업그레이드했지만 XSP/FastCGI는 여전히 2.10.2.0 버전으로 유지되었습니다. 2.11.0.0으로 XSP/FastCGI 패키지를 업그레이드 할 때 문제가 사라졌습니다.

관련 문제