2010-03-09 3 views
8

ASP.net MVC 2 RC 2 응용 프로그램을 프로덕션 환경에 배포하는 데 문제가 있습니다. 나는 dev와 test 모두에서 잘 작동한다. 주요 차이점은 프로덕션 박스가 아직 IIS 7.5로 업그레이드되지 않은 것 같습니다. 내가 사이트에 간다면 I am getting a blank page while deploying MVC application on IIS에 설명 된대로 빈 페이지가 생깁니다.IIS 7의 ASP.net MVC 빈 페이지가 반환됩니다.

나는 여기 나열된 대부분의 것들을 쓸데없이 시도했다. 나는 .net 4에 대한 통합 및 고전적 구성을 사용하여 시도해 본 결과 기본 파일과 관련이있는 경우를 대비하여 특정 컨트롤러와 동작을 시도했다. 내가 이상한 일을 시도한 것은 라우팅을 변경하여 IIS6에서 수행 할 수있는 .mvc 확장을 사용하는 것이 었습니다. 나는 그 일을 피하고 싶습니다. application_error에서 로깅을 추가했지만 아무 것도 거기에 던지지 않습니다. 실제로 ASP.net MVC 1 응용 프로그램을 동일한 컴퓨터에서 작동합니다. 나는 또한 단지 1 응용 프로그램

 string originalPath = Request.Path; 
     HttpContext.Current.RewritePath(Request.ApplicationPath, false); 
     IHttpHandler httpHandler = new MvcHttpHandler(); 
     httpHandler.ProcessRequest(HttpContext.Current); 
     HttpContext.Current.RewritePath(originalPath, false); 

이것은/문서에 대해 잘 작동하지만 오프 어떤 링크가 여전히 빈 페이지를 반환 내 asp.net의 MVC에 같은 기본 문서에 퍼팅 시도.

아무도 내가해야 할 일이 무엇인지 생각해 봤습니까?

+0

동일한 문제가 있습니다. 어떤 해결책? –

+0

아니, 그것을 수정하지 못했습니다. – stimms

+0

동일한 오류가있는 다른 사용자를위한 메모 : app_offline.htm 파일이 없는지 확인하십시오. –

답변

26

"서버 관리자"제어판의 "웹 서버 (IIS)"역할에 "HTTP 오류"및 "HTTP 리디렉션"서비스를 추가해야합니다. CSS 및 Javascript와 같은 정적 컨텐트를 가져 오려면 "정적 컨텐트"서비스도 활성화하십시오.

+1

옛날 일이지만 좋은. 에 딱 맞다. – brmore

+0

이것이 도움이된다면 (그것은 나에게 해줬습니다 :)), 어쩌면 그 답을 받아 들일 수 있습니까? –

+1

정말 도움이되었습니다! 고맙습니다. +1 –

1

그냥 IIS/MVC가 빈 페이지를 반환하는 다른 이유를 추가한다고 생각합니다. SQL 데이터베이스에 대해 인증 된 응용 프로그램 풀 ID가 있다고 가정합니다. 이제 여러분은 생산을위한 것과 생산 전을위한 두 가지 다른 정체성을 가지고 있다고 가정합니다. 자, 존경하는 동료 중 한 명이 프로덕션에서 프로덕션 전의 프로덕션 데이터베이스를 복원하기로 결정했다고 가정합니다. 이제 프로덕션 사용자에게 권한이 부여 된 pre-prod에있는 prod 데이터베이스의 복사본이 있지만 프로덕션 전 사용자에게는 아닙니다. 이러한 상황에서 프리 프로덕션 사용자 (이전에 프로덕션 전 데이터베이스에 존재했던)에 대한 권한 부여가 이제 데이터베이스 복원에 의해 지워졌 기 때문에 프리 프로덕션에서 빈 페이지를 얻게되었습니다. 해당 사용자 ID가 응용 프로그램 풀 ID이므로 MVC 응용 프로그램에 더 이상 데이터베이스에 대한 권한이 없습니다. 이로 인해 MVC는 빈 페이지를 렌더링하고 누군가 내 웹 서버에서 일부 IIS 설정을 변경했다고 생각했기 때문에 이틀 동안 내 꼬리를 쫓아 냈습니다. 실제로 데이터베이스 사용 권한 문제였습니다. 아마 이것은 미래에 비슷한 문제를 가진 누군가에게 단서를 줄 것입니다.

+0

나는 같은 문제를 겪고 있다고 생각하지만 확신하는 방법을 모른다. IIS가 아닌 DB 때문에 문제가 있음을 어떻게 알았습니까? –

+1

그 일을한지 오래되었지만 SQL 로그인을 통해 해당 사용자 ID를 사용하여 데이터베이스에 직접 로그인하려고 시도했기 때문에 로그인 한 사용자가 로그인 할 수 없다는 것을 알았 기 때문에 그 사용자임을 알 수있었습니다. 더 이상 존재하지 않았다! –

+0

데이비드에게 감사드립니다. 내 문제는 다르지만보다 정확한 오류 보고서가 있어야하는 것보다 훨씬 어려워집니다. 반환 된 오류 메시지가 명확해야합니다. –

0

또한 HTTP 리디렉션 역할을 설치하지 않았지만 다른 문제가있는 경우에 대비하여 여기에 문서화하겠다고 생각하는 추가 문제가있었습니다.

나는 7-Zip을 사용하여 프로그램 폴더를 압축하여 prod 서버로 전송했습니다. 압축을 풀었을 때 보기 폴더에있는 web.config 파일이 폴더이라는 web.config라는 이름의 구성 파일을 내부에 포함하여 추가되었습니다. 파일을 밖으로 이동하고 폴더를 삭제하면 나를 위해 이것을 정렬했습니다.

단서는 이벤트 뷰어에 있었으므로 다른 대답이 완전히 도움이되지 않는지 확인하십시오.

더 이상 빈 페이지가 없습니다.

관련 문제