2011-09-01 5 views
5

Salesforce에서 안전하지 않은 문자를 받아 들일 것으로 예상되는 응용 프로그램이 있습니다. 그들은 % 0A와 % 0D (지금까지는 ...)이고 그들은 작동하지 않습니다.IIS 7 Bad URL에 % 0A가있을 때 응답 요청

이 나는, trueallowDoubleEscaping을 설정 requestValidationMode1024-relaxedUrlToFileSystemMappingtruemaxRequestLength, requestPathInvalidCharactersBLANK에, 2.0로했습니다.

작동하지 않았습니다. 그런 다음 Salesforce에서 보낸 데이터를 전달하지 않고 같은 페이지로 리디렉션하도록 400에 대한 맞춤 오류를 설정하려고했습니다. 또한 작동하지 않았다.

그런 다음 IIS 7 오류 페이지 섹션을 통해 동일한 작업을 시도했지만 여전히 작동하지 않았습니다.

어떻게 할 수

  1. 앱이 문자를 수락하기?
  2. 또는 앱/IIS가 수동 입력을 위해 같은 페이지로 리디렉션되도록 하시겠습니까?

이 모든 것은 ASP.NET MVC 3 응용 프로그램에 포함되어 있지만 ASP.NET 런타임을 호출하기 전에 IIS가 중지하기 때문에 문제가 될 수 있습니다.

몇 가지 도움을 주시면 감사하겠습니다. 미리 감사드립니다!

+0

ASP.NET 또는 IIS에서 오류가 발생합니까? 일반적으로 차이점을 알 수 있습니다. ASP.NET에는 YSOD (죽음의 노란색 화면)가 있으며 IIS 7은 다르게 보입니다. – CodingGorilla

+0

IIS가 흰색인데 "잘못된 요청 {HR} HTTP 오류 400입니다. 요청 URL이 잘못되었습니다." – Gup3rSuR4c

+0

@Alex이 문제를 해결 한 적이 있습니까? 나는 URL에서 % 0A와 % 0D와 똑같은 문제를 겪고 있습니다. – Geekman

답변

1

IIS 관리자에서 원하는 서버 노드 (또는 웹 사이트 노드)를 클릭하고 Request Filtering 아이콘을 찾으십시오. URL 탭으로 이동하여 여기에서 항상 특정 URL을 허용하거나 URL 필터링이 일반적으로 처리되는 방식을 변경할 수 있습니다. 나는이 설정이 web.config 파일의 섹션에서도 사용 가능하다고 확신하지만, 모든 설정 요소와 속성이 무엇인지 알지 못한다. (나는 당신이 검색을 수행하고 쉽게 찾을 수있을 것이라고 확신한다.)

이 문제를 해결 한 후에도 ASP.NET을 통과해야 할 수도 있습니다.

0

어쩌면 조금 늦었을지 모르지만 AllowRestrictedChars 레지스트리 설정 (https://support.microsoft.com/en-us/kb/820129에 설명 된대로)을 사용하여 구성된 예외를 변경하면 효과가있을 수 있습니다. 기본값은 0이고, 1로 변경했습니다. 0이 아니면 Http.sys는 U + 0000 - U + 001F 및 U + 007F - U + 009F 범위로 디코딩하는 요청 URL에서 16 진수 이스케이프 문자를 허용합니다.