2010-02-02 2 views
0

Pro ASP.NET MVC Framework에서 가져온 코드별로 응용 프로그램의 양식 제출 페이지에 CAPTCHA를 구현했습니다.ASP.NET MVC - 독립 실행 형 어셈블리로서의 Captcha

그는 "재사용 가능한 배포 가능한 CAPTCHA 구성 요소로 바꾸고 싶다면 CaptchaHelper 및 CaptchaImageController 클래스를 독립 실행 형 어셈블리에 배치하면됩니다."

이것은 무엇을 의미합니까?

필자는 새로운 MVC 프로젝트를 만들고,이 단일 컨트롤러를 컨트롤러 폴더에, 헬퍼 파일을 도우미 폴더에 가지고 있다고 생각했습니다. 그것은 잘 컴파일됩니다.

그 다음이 프로젝트를 내 솔루션에 포함시키고이 프로젝트에 대한 참조를 다른 하위 프로젝트 (비즈니스 레이어 용, 다른 UI 용)에 추가했습니다.

그러나 페이지를 렌더링하려고하면보기에서 captcha 이미지를 렌더링 할 수 없습니다. (btw, 그것은 별개의 프로젝트로 나눠지기 전에 잘 작동했습니다.)

보기 페이지에서 CAPTCHA 컨트롤러를 찾지 못하는 것 같습니다. 내가 독립 컨트롤러를 만드는 데 도움이 필요 추측

...

감사합니다, 스콧

오류는 다음과 같습니다

Castle.MicroKernel.ComponentNotFoundException : 지원 없음 구성 요소 Castle.MicroKernel.DefaultKernel.get_Item (유형 서비스)에서 이라는 서비스 Captcha.CaptchaImageController가 발견되었습니다. Castle.Windsor.WindsorContainer.Resolve (유형 서비스) 에서
C에서 WebUI.WindsorControllerFactory.GetControllerInstance (유형 controllerType)에서 : \ work_aspx \ PostHealthWellness \ UI를 \ WindsorControllerFactory.cs : 라인 48 System.Web.Mvc.DefaultControllerFactory.CreateController 시스템에서 (RequestContext requestContext, 문자열 컨트롤러 명) 에서. Web.Mvc.MvcHandler.ProcessRequest (HttpContextBase으로 HttpContext) System.Web.Mvc.MvcHandler.ProcessRequest (HttpContext를 HttpContext를) System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest에서 을 (HttpContext를 HttpContext를) 에서 시스템에서 .Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() System.Web.HttpApplication.ExecuteStep에서 (IExecutionStep 단계, 부울 &Synchronously completed)

답변

0

두 개의 파일을 사용하여 표준 클래스 라이브러리 프로젝트를 만듭니다. 필요한 참조 (MVC ...)를 추가하여 컴파일합니다. 컴파일 된 dll을 기본 웹 응용 프로그램에 대한 참조로 추가하십시오.

+0

예, 저는 이것을했으나 Windsor에 외부 컨트롤러를 등록해야했습니다. // 등록 컨트롤러를 외부 어셈블리에 container.Kernel.AddComponent ("ExternalResources"의 typeof (Captcha.CaptchaImageController), LifestyleType을 : 나는 [여기]를 발견 – Scott

+0

사용 정보 [1], 나는 추가 내 WindsorControllerFactory.cs 파일을 편집 .과도 현상); [1] : http://stackoverflow.com/questions/1163900/external-controllers-and-castle – Scott

+0

댓글에 서식이 없습니다 .... – Scott

관련 문제