2012-07-20 7 views
2

나는 MVC2 응용 프로그램을 가지고 있는데 여기에는 비 MVC 파트 (정규 Asp.Net 3.5 페이지)가 포함되어 있습니다.Asp.net MVC에서 Webservice에 액세스

자동 완성을 채우기 위해 비 MVC 페이지에서 webservice (WCF 아님)를 호출합니다.

MVC 파트와 비 MVC 파트 모두 내 개발자 컴퓨터에서 올바르게 작동합니다.

IIS에서 내 응용 프로그램을 호스팅 할 때 내 웹 서비스의 webmethods에 액세스 할 수 없습니다. 나는 방화범이 끌 렸는지 확인했다.

The controller for path '/payroll/WS/MVCArch.asmx/JqUiGetEmp' was not found or does not implement IController. ' 

내 가상 디렉터리 이름은 Payroll이다. 내 비 MVC 페이지는 응용 프로그램의 루트 아래에있는 "RepDocs"라는 폴더 아래에 있습니다. 내 웹 서비스 폴더 인 "WS"도 응용 프로그램의 루트 아래에 있습니다. 요청은 "RepDocs"폴더 아래의 비 mvc 페이지에서 전송되었습니다.

어떻게 동일한 코드가 VSHOST에서 작동하고 IIS (XP sp3)에서 작동하지 않습니까? 내가 놓친 게 있니?

도와주세요.

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.IgnoreRoute("favicon.ico"); 
routes.IgnoreRoute("WS/{resource}.asmx/{*pathInfo}"); 
//routes.IgnoreRoute("{*allasmx}", new { allasmx = @".*\.asmx(/.*)?" }); 
routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
); 

을 따를

편집

나는 지금 내가

The HTTP verb POST used to access path '/Payroll/ws/MVCArch.asmx/JqUiGetOffice' is not allowed. 

내가 웹에 다음과 같은 추가이 오류 경로를 제외 제를 Global.asax를 수정했습니다. 구성

<webServices> 
    <protocols> 
     <add name="HttpGet"/> 
     <add name="HttpPost"/> 
     </protocols> 
</webServices> 

아직 운이 없습니다.

+0

경로가 배포 아마 잘못 웹 서비스에 대한 경로를 무시해야합니다. http://blogs.msdn.com/b/rickandy/archive/2011/04/22/test-you-asp-net-mvc-or-webforms-application-on-iis-7-in-30-seconds를 참조하십시오. .aspx - – RickAndMSFT

+0

경로를 확인했는데 wsdl이 올바르게 반환되면 내 서비스가 실행 중임을 의미합니다. 페이지가 너무 정확하게 렌더링됩니다. 내 서비스에 대한 아약스 요청 만 작동하지 않습니다. 어떻게 든 요청은 비 mvc 페이지에서 시작된 요청 일 수없는 컨트롤러로 끝납니다. – Deb

답변

2

당신은 Global.asax.cs

routes.IgnoreRoute("{*allasmx}", new {[email protected]".*\.asmx(/.*)?"}); 
+0

제안을 사용하면 System.Web.HttpException이 발생합니다. '/payroll/ws/MVCArch.asmx/JqUiGetOffice'경로에 액세스하는 데 사용 된 HTTP 동사 POST가 허용되지 않습니다. – Deb

관련 문제