2010-06-29 3 views
0

방금 ​​ASP.NET MVC 2 사이트를 처음 배포했으며, IIS 금지 문제가 발생하는 것을 제외하고는 모두 잘된 것처럼 보입니다. 두 번 이스케이프 처리 된 문자는 몇 가지 경로에 의존합니다.ASP.NET MVC 2 웹 사이트가 코드 변경을 수행하지 않는 것 같습니다.

IIS (공유 호스트에 있음)를 제어 할 수 없기 때문에 문제를 해결하고 공백을 URL의 밑줄로 바꾸기로 결정했습니다. 로컬 시스템에서 작동하는지 테스트하고 확인한 다음이를 필요로하는 다양한 비트를 url-encode 및 url-decode하는 메소드가 포함 된 두 개의 새로운 모델 클래스를 배포했습니다.

그러나 원격 웹 사이트에서는 코드를 업데이트 한 것으로 분명하게 알지 못했습니다. web.config를 두 번 편집하여 강제로 재 컴파일을 시도하고 원격 모델 클래스를 삭제 한 다음 다시 업로드하고 다른 이유로이 사이트가 검색되는 이유를 찾아 보았습니다. 어떤 아이디어?

+0

사이트의 루트에 'appoffline.htm' 파일을 놓고, 사이트를 오프라인으로 만들고, 경로를 탐색 한 다음'appoffline.htm' 파일을 제거 할 수 있습니다. –

답변

2

bin 폴더에서 수정 한 모든 어셈블리를 포함하여 전체 사이트에 xcopy을 작성했는지 확인하십시오.

+0

어셈블리를 직접 수정하지 않고 실제 클래스 만 수정했습니다. 내가 그들을 어디에서 찾을 수 있을까? 내가 업로드 한 외부 참조를 제외하고 내 사이트 트리에서 dll을 볼 수 없습니다. – randomsequence

+0

C#/VB.NET은 정적 언어입니다. 즉, 소스 코드를 수정할 때마다 컴파일해야합니다. 소스 코드를 컴파일하면 어셈블리 (dll)가 생성됩니다. ASP.NET 응용 프로그램의 경우이 어셈블리는'bin' 폴더에 저장됩니다. 따라서 웹 응용 프로그램을 컴파일하고 나면 결과 어셈블리를 서버에 업로드해야합니다. –

+2

@randomsequence - 예전의 "웹 사이트"아키텍처 모델에 익숙 하시리라 생각합니다. MVC는 .CS 파일이 아니라 서버에 컴파일 된 어셈블리를 배포해야하는 "웹 응용 프로그램"모델을 사용합니다. – GalacticCowboy

0

Ctrl + F5를 눌러 브라우저 캐시를 지우십시오.

+0

나는 그것에 대해 궁금해했지만 캐시를 지우고 다른 브라우저를 사용해 보았습니다. 확실히 서버 측입니다. 생성하고있는 RouteLink는 업데이트하려는 메소드를 호출하고 링크 href는 여전히 밑줄 대신 + 문자를 사용하고 있습니다. – randomsequence

관련 문제