2014-11-27 6 views
1

asp.net 웹 양식 페이지에서 이상한 오류가 발생합니다. 전체 기능을 갖춘 기존 페이지가 있습니다. 페이지에 몇 가지 데이터 컨트롤이 있습니다. 제출 버튼을 클릭 할 때 필요한 작업을 수행 한 후 인터넷 탐색기가 비어있게됩니다. 페이지를 표시 할 수 없다고합니다.Submit 단추를 클릭 할 때 Response.Redirect 뒤에 페이지를 표시 할 수 없습니다.

내 코드가 너무 오래 되었기 때문에 실제 제작 사이트가 거의 없습니다. 그러나 최근에는 새로운 생산 현장에 배치했습니다. 내부 URL을 사용하여 동일한 페이지를 탐색하고 동일한 작업을 수행하면 오류 메시지가 표시되지 않고 모든 것이 원활하게 작동합니다.

문제의 배경을 제공하려면 제출 버튼을 클릭하면 백엔드에서 웹 서비스를 호출하고 웹 서비스 결과가 다시 나타납니다. 일단 결과가 돌아 오면 쿼리 문자열에 몇 가지 추가 매개 변수가있는 동일한 페이지에 response.redirect()를 사용합니다 (url - Request.Url.AbsolutePath를 작성하여). 페이지를 새로 고침하면 동일한 페이지가 올바르게 표시됩니다. IE에서

페이지 - 크롬 enter image description here 페이지 - 아웃으로 enter image description here

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

1

문제는 코드에 없지만 프로덕션 설치 구성에서 예상 한대로입니다. 프로덕션 구성에서 www.test.com과 같은 공개 URL은 www.test.com:7500으로 리디렉션되었습니다. 따라서 사용자가 웹 사이트 URL을 요청할 때 응용 프로그램이 호스팅 된 7500 포트로 리디렉션되고있었습니다. 그것은 훌륭한 때까지, response.redirect asp.net 코드에서 수행. response.redirect가 ASP.NET에서 수행되면 Request.Url.AbsolutePath 서버에 URL이 www.test.com:7500이됩니다. 그래서 7500으로 리디렉션하려고했습니다. 그러나이 리디렉션은 공용 URL에서 설정되었습니다. 내부적으로는 작동하지 않을 때도 동일한 작업을 시도했습니다.

이 문제를 해결하기 위해 빠른 수정 방법을 사용했습니다. 공용 URL에서 요청 리디렉션을 제거하고 포트 80에서 내 사이트를 설정했습니다. 이로 인해 내 문제가 해결되었습니다.

0

코드를보고는 여러 가지 일 수있다.

그러나 추측에 따라 URL을 다시 작성한 다음 페이지가 다시 게시되면 재 작성된 페이지로 다시 게시되는 것이 아니라 밑줄이 표시된 페이지로 다시 게시됩니다.

코드 작업에서 다시 작성된 페이지로 양식 작업을 설정할 수 있습니다.

form.action = "myrewrittenurl.com/path"; 

또한 일부 rewriters에 작업 할 수

<form action='#'

에 양식 동작을 설정하는 시도 할 수 있습니다.

+0

내 aspx 페이지에 양식이 없습니다. 버튼 클릭시, response.redirect()를 수행 중입니다. –