ASP.NET MVC 응용 프로그램이 도메인의 하위 프로젝트로 게시 될 때 사용 방법?

StackOverflow https://stackoverflow.com/questions/802253

  •  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 또는 더 높은 디렉토리 이름을 방해 할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top