2010-04-29 1 views
0

Silverlight 3 프로젝트를 사이트의 일부로 사용하여 Visual Studio 2008 Sp1에서 MVC (1.0) 응용 프로그램으로 시작한 응용 프로그램이 있습니다. . 아무것도 전혀 상상할 수 없습니다. 의존성 삽입을위한 Ninject 사용 (첫 번째 버전 2 베타 버전, 현재 MVC 확장 버전 2 출시).IIS7.5에 MVC2 응용 프로그램 배포 - Ninject가 콘텐트 파일 용 컨트롤러를 제공하도록 요청했습니다.

.Net 4.0, VS2010, MVC2 등이 출시되어 응용 프로그램을 최신 플랫폼으로 이전하기로 결정했습니다. VS2010의 변환 마법사는 분명히 모든 것을 처리했지만 한 가지 예외는 있습니다. mvc1에 대한 참조가 mvc2를 가리 키도록 변경하지 않았으므로 수동으로해야했습니다. 물론, 이것은 내 애플 리케이션에서 누락 될 수있는 다른 MVC2 것들을 생각하게한다. File -> New Project ...를했다면 거기에있을 것이다.하지만이 질문의 초점은 아니다.

이 응용 프로그램을 IIS 7.5 서버 (Win2008 R2 x64에서 실행)에 배포하면 응용 프로그램이 제대로 작동합니다. 그러나 이미지, 스크립트 및 기타 정적 컨텐츠가 존재하지 않는 것 같습니다. 물론 그들은 서버의 디스크에 있지만 클라이언트 웹 브라우저에는 나타나지 않습니다.

나는 IIS에 상당히 익숙하다. 그래서 내가 알고있는 유일한 트릭은 서버의 브라우저에서 웹 페이지를 열려고 시도하는 것이고, 더 많은 정보를 줄 수있다. 그리고 마침내, 우리는 적을 만납니다. 이미지 (예 : http://server/Content/someimage.jpg) 중 하나의 URL로 직접 이동하려고하면 브라우저에 다음 오류가 표시됩니다.

IControllerFactory 'Ninject.Web.Mvc.NinjectControllerFactory'가 'Content'라는 컨트롤러.

아하. 웹 서버는이 요청을 MVC에 공급하려고 시도합니다. MVC는 '기본 라우팅 설정으로 컨텐트를 컨트롤러로 가정하고 실패합니다.

Content/and Scripts/(기타)를 비 컨트롤러로 취급하고 정적 컨텐츠를 전달하려면 어떻게해야합니까? 이것은 물론 내 개발자 컴퓨터의 Cassini와 함께 작동하지만 배포하자마자이 문제가 발생합니다.

IoC 도구가 누락 된 컨트롤러를 기본 컨트롤러 공장에 전달해야하는 Ninject MVC 2의 마지막 버전을 사용하고 있지만 분명히 도움이되지 못했습니다. 나는 또한 Content 등등을위한 경로를 무시하도록 추가하려고 시도했으나 이것은 명백하게 아무런 효과가 없다. 나는 올바른 수준의 문제를 해결하고 있는지 확신하지 못한다.

누구든지이 앱을 사용하기 위해 어디에서 볼 수 있는지 알고 있습니까? 나는 웹 서버를 완벽하게 제어 할 수 있으므로, 원하는대로 작업을 시작할 수 있습니다.

감사합니다.

답변

1

이 일부 계정 설정에 의해 발생되었다 밝혀에 그 예외가 거짓 것을 의미 WIN2008 R2 서버의 IIS가 sitename 계정을 자동으로 생성합니다."모든 것"을 시도한 후에, 나는이 정보를 발견하고 적절한 권리를 부여하며 마술처럼 일하기 시작했습니다.

특히 매우 제한된 IIS 사용 경험이있는 사람 (나)의 경우 디버깅하기가 상당히 어렵습니다.

+2

그리고 적절한 권리는 무엇입니까? 앱 풀을 실행하는 계정에 대한 읽기만 허용 하시겠습니까? –

4

구조적 맵과 favorite.ico에서 비슷한 문제가 있었는데, 결국 그 경로를 무시하는 경로를 추가하는 것이 었습니다.

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.IgnoreRoute("favicon.ico"); 

내가 전혀 생각이 정말 가지고는 있으나 변경 또 다른 한가지는 당신이 사용자 정의 페이지가있는 경우도 그 매핑해야합니다, Default.aspx를위한 필요하다. 이것이 라우팅에서 내가 가진 두 가지 문제입니다.

 routes.RouteExistingFiles = false; 

편집 : - 나는 IIS AppPool을 \ 모르고 있었다 나는 RouteExistingFiles 그렇지 않으면 나는 MVC2 :

+0

답변 해 주셔서 감사합니다. 나는 이것을 들여다 보았고, 불행히도 그것이 작동하지 않았다. 나는 더 나중에, 갈퀴로 이것을 사냥하는 과정에있다. 나는 이것이 아마도 다른 문제에 도움이 될 수 있기 때문에 투표를하고 있습니다! –

+0

favicon에 ignoreroute를 추가하는 것은 내가 원했던 것입니다. 건배 : – Moo