ASP.Net에서 온라인 프로젝트를 다운로드했습니다. 응용 프로그램을 실행하는 동안 오류가 발생합니다
응용 프로그램 수준을 넘어 allowDefinition = 'MachineToApplication'으로 등록 된 섹션을 사용하면 오류가 발생합니다. 이 오류는 IIS에서 가상 디렉터리가 응용 프로그램으로 구성되지 않아 발생할 수 있습니다.
이 작업을 수행하기 위해 web.config 또는 다른 곳에서 어떤 변경을해야합니까?
ASP.Net에서 온라인 프로젝트를 다운로드했습니다. 응용 프로그램을 실행하는 동안 오류가 발생합니다
응용 프로그램 수준을 넘어 allowDefinition = 'MachineToApplication'으로 등록 된 섹션을 사용하면 오류가 발생합니다. 이 오류는 IIS에서 가상 디렉터리가 응용 프로그램으로 구성되지 않아 발생할 수 있습니다.
이 작업을 수행하기 위해 web.config 또는 다른 곳에서 어떤 변경을해야합니까?
답변:
방금이 "기쁨"이 발생했습니다. 릴리스 모드에서 웹 응용 프로그램을 게시 한 직후에 나타납니다.
내가 찾은 문제를 지속적으로 해결하는 유일한 방법은 다음 점검표를 따르는 것입니다.
MvcBuildViews
하여 여기에 도착 했습니다 true
.
이 게시물을 보러 와서 저에게 일어난 일입니다.
그냥 Clean
프로젝트 및 오류가 사라집니다. (VS2010 버그 여야 함)
obj
폴더를 지우지 않습니다 . 때로는 삭제도 필요합니다.
내 웹 사이트의 두 번째 버전을 만들 때이 문제가 발생했습니다. 처음 건축했을 때는 일어나지 않았습니다.
방금 bin 및 obj 폴더를 삭제하고 클린 솔루션을 실행 한 다음 아무 문제없이 다시 빌드했습니다.
이 오류는 프로젝트를 웹 사이트로 열려고 할 때 발생합니다. 웹 사이트 또는 프로젝트를 만들 었는지 확인하는 가장 쉬운 방법은 솔루션 폴더 (예 : 코드를 저장 한 위치)를 확인하고 루트 디렉토리에 * .sln 파일이 있는지 확인하는 것입니다. ve는 프로젝트를 만들었습니다.
추가하기 위해 Visual Studio 메뉴에서 "파일", "웹 사이트 열기"를 선택하여 "파일", "프로젝트 열기"를 선택해야했던 프로젝트를 열려고 할 때이 오류가 발생했습니다. 대신에. 내가 깨달았을 때 나는 얼굴을 pal 다 :)
Visual Studio 2013에서는 잠시 동안이 문제로 어려움을 겪었으며 "IIS에서 응용 프로그램으로 구성되지 않은 가상 디렉터리" 라는 예외를 따르는 것이 매우 쉽습니다.
내 경우에는 내가했던 WebService
내부에 심어 IIS website
그래서
Convert to Application
Ok
WCF가 다시 시작되었습니다.
이 오류는 사용중인 코드가 IIS에서 가상 디렉터리가 설정 될 것으로 예상 함을 나타냅니다.
문서를 찾아 필요한 가상 디렉토리를 추가하십시오. web.config
루트 디렉토리가 아닌 디렉토리가 있어야합니다 .
<authentication mode="Forms"><forms name="..." loginUrl="~/Login/Login/" timeout="2880" /></authentication>
자신의 Web.config
에서 Views
이 문제의 원인보다는 트렁크 폴더.
뷰 빌드가 활성화 된 MVC 프로젝트가있는 경우 솔루션 중 하나는 빌드 전에 obj 폴더를 삭제하는 것입니다. 프로젝트 파일에 추가 :
<Target Name="BeforeBuild">
<!-- Remove obj folder -->
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
<!-- Remove bin folder -->
<RemoveDir Directories="$(BaseOutputPath)" />
</Target>
다음은 기사입니다. 빌드 또는 배포 전에 bin 및 / 또는 obj 폴더를 제거하는 방법
이 오류가 발생하면
응용 프로그램 수준을 넘어 allowDefinition = 'MachineToApplication'으로 등록 된 섹션을 사용하면 오류가 발생합니다. 이 오류는 IIS에서 가상 디렉터리가 응용 프로그램으로 구성되지 않아 발생할 수 있습니다.
해결 방법
VS 2012와 동일한 문제가있었습니다.
<MvcBuildViews>false</MvcBuildViews>
그렇다면 하나의 해결책은 컴파일러가 생성 한 프로젝트에서 obj 폴더의 내용을 삭제하는 것입니다.
MvcBuildViews
에 true
내가 처음에 오류가 발생했습니다 방법이다.
<MvcBuildViews>true</MvcBuildViews>
필자의 경우 하위 디렉토리에 프로젝트 를 게시 한 후에 만 문제가 발생했습니다 . 지식이 부족하여 web_publish
하위 디렉토리를 디렉토리 안에 넣었습니다 web_project
.
또한 프로젝트에 포함 된 web_publish
것과 같은 것이 포함되어 있음이 분명합니다 Web.config
. 그러나 중첩 하위 디렉토리에서 s를 검색 할 때 피해야한다는 web_project
것을 알지 못합니다 . 이런 식으로 s가 복제되고 오류가 나타납니다.web_publish
Web.config
Web.config
해결책은 web_publish
다른 곳 을 배치하는 것이 었습니다 .
필자의 경우 전체 웹 사이트의 다른 복사본이 들어있는 "백업"폴더가있었습니다. 이것은 다른 것을 의미 web.config
하므로 빌드 가이 오류로 실패했습니다. "백업"폴더를 삭제하고 디버그 및 릴리스 빌드에서 클린 솔루션을 수행 한 후 오류가 사라졌습니다.
나의 경우에는,
솔루션에는 6 개의 프로젝트, 1 개의 기본 및 5 개의 하위 디렉토리가 있습니다. web.config가있는 모든 하위 디렉토리
하위 디렉토리 내에서 페이지를 실행할 때 동일한 오류가 발생했습니다.
web.config에서이 줄을 제거했습니다.
<authentication mode="Windows"/>
그것은 나를 위해 일했다.
bin 및 obj 폴더를 삭제하십시오. 그런 다음 솔루션을 다시 빌드하십시오.
가상 폴더로 구성되지 않은 프로젝트 폴더 내에 하위 asp.net 프로젝트 폴더가있을 수 있습니다. IIS에서 실행되도록 프로젝트를 설정하십시오.
내 웹 사이트 게시 스크립트에 추가했습니다. 마지막으로 웹 사이트 폴더에서 obj 폴더를 삭제하십시오.
프로젝트 파일에서 "true"가 활성화 된 경우이 문제가 더 자주 발생합니다.
조니의 말 :
일부 서버에 웹 사이트 또는 응용 프로그램을 게시하는 동안이 문제가 발생하면 파일을 포함하는 폴더를 웹 응용 프로그램으로 변환하는 간단한 방법이 사용되었습니다.
Convert to Application
.
프로젝트를 디버그 모드로 게시 한 후 VS 2013에서 동일한 문제가 발생했습니다. obj / 파일을 제거하여 문제가 해결되었습니다.
Visual Studio 를 통해 FTP를 통해 WCF 서비스를 외부 서버에 게시했습니다 . 로컬에서는 물론 내부 서버에 게시 할 때 외부에서는 제대로 작동하지 않았습니다. 해결책은 (즉, 가상 디렉터리의 루트에 직접 게시)를 제공하지 않고 게시하는 것 Site Path
입니다.
파일이 이미 외부 FTP 클라이언트를 통해 루트로 이동하려고 시도했기 때문에 왜 이것이 효과가 있었는지 잘 모르겠습니다. 여기에 나열된 모든 것을 포함한 많은 시도가 있습니다. 아마도 FabianVal 과 같은 게시 프로파일에 관한 것일 수 있습니다. 그러나 나는이 문제에 대해 하루 종일 낭비 한 후에 서두르 기 때문에 더 이상 테스트하기를 원하지 않습니다.
위의 모든 솔루션을 시도했지만 그 중 어느 것도 내 문제에 효과가 없었습니다. (이 문제에 대한 솔루션이 1000 개라고 확신합니다.) 시나리오에서 테스트중인 WCF 웹 서비스를 프로덕션에 게시하려고했습니다.
그러나 프로덕션 환경에서 우리는 HTTPS 전용이라는 것을 깨닫지 못했습니다. 즉 모든 것을 HTTPS로 리디렉션합니다. 결과적으로 HTTPS 대신 HTTP를 통해 서비스를 가리 키므로 오류가 발생했습니다. 이 시나리오의 솔루션은 단순히 주소 프로토콜을 HTTP가 아닌 HTTPS로 변경하는 것입니다.
나는이 문제를 알아 내려고 노력하는 가난한 영혼을 도울 수 있기를 바랍니다.
obj
.