2011-11-12 4 views
0

동일한 사이트에서 여러 개의 개별 응용 프로그램을 아무런 문제없이 실행하고있는 웹 서버가 있습니다. 방금 루트에 새 응용 프로그램을 추가했습니다. 이러한 애플리케이션의 대부분은 global.asax에서 라우팅 테이블을 사용하며, 루트에 추가 한 것과 같습니다. 그리고 web.config에서 < 모듈 > 및 < 처리기 > 섹션의 web.config에서 오류가 발생했습니다. 내 새 루트 응용 프로그램에 "하위"응용 프로그램과 동일한 이름의 처리기가 추가되었습니다. 하지만이 모든 앱은 모듈과 핸들러에 동일한 이름을 사용합니다. 라우팅 테이블도 지원하기 때문에 모두 "UrlRoutingModule"및 "UrlRoutingHandler"입니다.iis apps 및 subapps, web.config의 상호 작용

즉, 기존 앱 foo 및 bar가 http://example.com/foohttp://example.com/bar으로 실행된다고 가정 해 보겠습니다. foo와 bar 모두 "UrlRoutingHandler"라는 핸들러를 추가합니다. 이 문제는 발생하지 않습니다. 이제 간단히 http://example.com으로 실행되는 새로운 앱 base를 추가합니다. (하위 경로 없음) 또한 UrlRoutingHandler를 추가합니다. 일단이 앱을 추가하면 foo와 bar에 더 이상 액세스 할 수 없습니다. 도달하려고 시도하면 오류 500이 발생합니다.

어떤 일이 일어나고 있는지 실마리를 누군가 줄 수 있습니까? 루트에있는 앱의 web.config가 "하위"앱의 web.config에 "추가"되지만 "피어"앱의 web.configs는 서로 영향을주지 않습니까?

기본 앱에서 핸들러의 이름을 변경했는데 작동하는 것처럼 보입니다. 그러나 "그것이 효과가 있고 왜"가 "작동하지 않고 나는 이유를 모르겠다"보다 조금 낫다는 것을 알지 못합니다.

답변

1

Web.config에는 항상 부모 수준의 내용이 포함됩니다. 무시하거나 제거 할 수 있지만 항상 machine.config에서부터 가장 중첩 된 web.config까지 모든 것을 합한 것입니다.