ASP.NET MVC 응용 프로그램이 도메인의 하위 프로젝트로 게시 될 때 사용 방법?
-
03-07-2019 - |
문제
디버깅 및 로컬로 테스트 할 때 완벽하게 작동하는 WebApp이 있습니다. 그러나 사이트를 Productionserver에 게시하면 라우팅이 엉망이됩니다. 이것은 Productionserver의 하위 프로젝트로 실행되기 때문입니다.
Testing: http://localhost:xxx/ Production: http://remotehost/webapp/
라우팅을 어떻게 설정해야합니까?
이것은 내 현재 라우팅 설정 (대부분 기본값)입니다. 서버는 내가 방문 할 때 기본 컨트롤러 동작을 표시합니다. http : // remotehost/webapp/. 그러나 컨트롤러를 하드 코딩 할 때 (http : // remotehost/webapp/project/ 작동하지 않습니다 ...
Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute("ProjectsByCategory", "Project/Category/{id}", _
New With {.controller = "Project", .action = "ListByCategory", .id = ""}, _
New With {.id = "^[0-9]+"})
routes.MapRoute( _
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Project", .action = "Index", .id = ""} _
)
End Sub
해결책
나에게 그것은 IIS 6에 출판하는 것과 관련된 것 같습니다. 기사가 있습니다. 여기 그것에 대해.
나에게 '와일드 카드 응용 프로그램 맵'을 추가하여 비슷한 문제가 해결되었습니다.
- IIS에서 마우스 오른쪽 버튼을 클릭하고 문제의 가상 디렉토리에 대한 속성을 선택하십시오.
- 가상 디렉토리 탭을 선택하십시오
- 구성을 선택하십시오
- 삽입을 클릭하십시오
- Aspnet-isapi.dll (일반적으로 c : windows microsoft.net framework v2.0.50727 aspnet_isapi.dll)의 경로를 입력하십시오.
다른 팁
그건 그렇고, 라우팅은 응용 프로그램 수준에서 작동하는 것 같습니다. DomainName 또는 더 높은 디렉토리 이름을 방해 할 필요가 없습니다.
제휴하지 않습니다 StackOverflow