.NET 3.5에 Custom 404 CMS 시스템을 구축했으며 게시하는 데이터가 IIS 5.1 및 6.0에서 로컬로 작동하지만 프로덕션 IIS 6.0 서버에서는 작동하지 않습니다. IIS 6.0 사이트 설정 항목을 항목별로 비교 한 결과 거의 차이가 없었습니다.IIS 6.0의 Custom 404 페이지에서 제출할 때 POST 데이터가 손실되는 이유는 무엇입니까?
양식이 "http://domain/folder/folder/page.resource"(코드는 SVN 인 경우)으로 POST 중이며 제출할 때 리다이렉트가 발생하지 않음을 확인했습니다. (예외를 던져서 확인했습니다). 서버 별 디버그 정보 :
IIS 5.1 (my computer, works):
ServerVariables["REQUEST_METHOD"]="POST"
Request.TotalBytes = 1600
Request.QueryString.Count = 1 (NOTE: contains "404;http://domain:80/folder/folder/page.resource" in each case)
Request.Form.Count = 109
IIS 6.0 (test server, works):
ServerVariables["REQUEST_METHOD"]="GET" (NOTE: IIS 6.0 reads this as "GET" instead of "POST")
Request.TotalBytes = 1600
Request.QueryString.Count = 1
Request.Form.Count = 109
IIS 6.0 (production server, does not work):
ServerVariables["REQUEST_METHOD"]="GET"
Request.TotalBytes = 0 (NOTE: should be ~1600)
Request.QueryString.Count = 1
Request.Form.Count = 0 (NOTE: should be 109)
아무도 아이디어가 있습니까? 404 페이지에서 IIS 7.0에서 제출되지 않은 POST 데이터에 대해서는 읽었지만 6.0에서는 그렇지 않습니다. 내 양식이 형식에 :
은 IIS 5.1의<form id="GolfRegistration" name="GolfRegistration" method="POST" action="/folder/folder/page.resource" onSubmit="return CalculateAmount();">
<input type="button" value="Submit" onClick="if(ValidateInput()){submit(GolfRegistration);}">
</form>
만, 내가 설정 "IIS> 웹 사이트> 속성> 홈 디렉터리 탭> 설정 버튼> 추가"에서 .resource 확장 GET, HEAD와 함께 작업하고, 게시하다. 이로 인해 제출시 405 오류가 발생하지 않습니다.
편집 : POST를 GET으로 변경했으며 3 가지 경우 모두 올바르게 데이터를 제출 했으므로 형식 문제가 아닙니다. 불행히도 나는 쿼리 문자열에 변수 (109 개가 있음)를 전달할 수 없다.
"c"태그가 필요한 이유는 무엇입니까? – BobbyShaftoe