문제

jQuery를 사용하여 Ajax 호출을하려고하지만 IIS 6에 와일드 카드 매핑 (.NET)이 켜져 있기 때문에 작동하지 않는 것 같습니다. 매핑을 비활성화하면 모든 것이 마술처럼 작동합니다.

.aspx 페이지와 .ASMX 웹 서비스 모두에 메소드에 웹 메소드 속성을 넣었지만 작동하지 않습니다. 다음은 ajax 호출에 사용중인 샘플 URL입니다.

localhost/UserChecker.aspx/CheckIfUserEmailsExists

localhost/UserChecker.asmx/CheckIfUserEmailsExists

.NET이 URL을 해석하는 방식과 관련이 있어야한다고 생각하지만 이유는 확실하지 않습니다. 더 중요한 것은 와일드 카드 매핑을 비활성화하는 것 외에는 어떻게 고치는 지 잘 모르겠습니다! 다른 방법이 있습니까 ???

업데이트

내가 사용중인 CMS (Kentico)는 일부 URL 라우팅을 수행하지만 Global.asax.cs 코드의 라우팅을 건너 뛸 경우에도 여전히 404를 얻습니다.
미리 감사드립니다!

도움이 되었습니까?

해결책

IIS의 와일드 카드 매핑을 사용하면 먼저 와일드 카드 핸들러를 통해 초기 요청이 실행됩니다. 이것은 CMS의 URL 재 작성 (또는 URL 라우팅) 전에 수행됩니다.

나는 그것이 당신이 404를 얻는 이유라고 생각합니다.

또한 실제 URL이 나중에 다른 것으로 다시 작성 될 때 시나리오를 수용하기 위해 와일드 카드 매핑에서 "파일 확인 파일 확인"확인란을 비활성화 할 수도 있습니다.

다른 팁

이것은 완전한 대답은 아니지만 솔루션의 방향을 가리키기를 바랍니다.

브라우저에서 직접 URL에 액세스하고 문제를 추적하기 위해 잘 배치 된 브레이크 포인트를 사용해 보셨습니까?

404S를 받고 있다면 라우팅 규칙이 작동하지 않는 것처럼 들립니다.

당신이보고있는 행동에 대해 조금 더 많은 정보를 줄 수 있다면 이것을 업데이트하겠습니다

업데이트

무슨 일이 일어나고 있는지 생각합니다.

확장자가있는 파일에 별도의 매핑을 제공하고 있습니다 (이 경우 .aspx 및 .asmx) :

localhost/userchecker.aspx/CheckifuserEmailSexists

localhost/userchecker.asmx/CheckifuseremailSexists

이 매핑은 와일드 카드 매핑을 끄면 사용되며 '/CheckifuserEmailSexists'는 사용되거나 무시됩니다. 와일드 카드 매핑을 켜면 라우팅은 앱에 '루트'를 올바르게하는 방법을 알리지 않습니다.

연장을 제거한 경우 (와일드 카드 매핑이 켜져 있음) 다음이 작동합니까?

LocalHost/UserChecker/CheckiFuserEmailSexists

제외 목록에 해당 URL을 추가하십시오. 사이트 관리자-> 설정 탭에서 "제외 URL"설정을 사용하십시오. (기본 도움말 문서)

CMS 프레임 워크 외부의 URL을 확인하는 것이 좋습니다. 문제는 URL 라우팅과 관련이 있어야합니다. 와일드 카드 매핑없이 어떻게 작동하는지 tsure.

이해해야 할 질문 : 1. 와일드 카드 매핑없이 시도 할 때 CMS가 실행 중입니까? 2.이 CMS 시스템은 IIS와 어떻게 상호 작용합니까? IASPI DLL? 또는 HTTP 핸들러/모듈?

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