2009-10-04 8 views
17

웹 사이트의 하위 폴더에서 ASP.NET 웹 사이트를 실행할 수 있습니까?하위 폴더에서 ASP.NET 웹 사이트 실행

예를 들어, 내 웹 사이트에서 "wiki"라는 폴더에 screwturn 위키 (http://www.screwturn.eu/)를 실행하고 싶다고 말하면 screwturn 웹 사이트의 web.config를 변경하여 "wiki"폴더? (예 : "~ /"= "/ wiki /")

위키는 "/ wiki/bin"의 "~/bin"에있는 어셈블리를 발견하고 그 아래의 다른 모든 폴더 새로운 루트.

+1

위키 용으로 만든 새 하위 도메인이 생겨 사이트가 루트 웹 사이트가되었습니다. –

답변

13

케이크 한 조각, IIS 웹 사이트의 루트에 가상 디렉터리를 추가하고 사이트의 경로를 가리 키거나 웹 사이트 루트에 실제 디렉터리를 배치 한 다음 오른쪽으로 응용 프로그램으로 바꿀 수 있습니다 IIS 관리 콘솔에서 속성을 클릭하고 응용 프로그램 이름 옆에있는 "만들기"를 클릭하십시오.

+0

언급하지는 않았지만 웹 서버를 제어 할 수 없습니다. 그러나 이것은 제가 가졌던 솔루션에 가장 가깝습니다. 하위 도메인 (wiki.mydomainname.org)을 만드는 것이 었습니다. ISP 상자에 IIS에 대한 액세스 권한이 있었기 때문에 제안 사항이 표시되어 있으므로이를 답변으로 표시하겠습니다. –

+0

나는 지쳤으나 이제 IIS는 로그인 페이지의 코드 숨김 클래스를 찾지 못한다고 불평하고있다. 서브 사이트는 부모와 동일한 dll을 상속합니까? 하위 사이트에 대한 페이지 클래스의 로그인은 VS에서 동일한 프로젝트로 기본 사이트 DLL로 컴파일되기 때문에. – James

+1

폴더에 자체 포함 된 전체 응용 프로그램이 있어야합니다. 그렇지 않으면 존재하지 않는 bin 디렉토리를 찾습니다. –

-1

짧은 대답은 가능합니다. Web.Config에서 폴더 위치를 지정할 필요가 없습니다.

+0

위키 폴더에 web.config가 있다고 가정합니다. "/ wiki/bin"은 런타임에서 자동으로 찾습니다. –

+0

하지만 페이지가로드되지 않아 " '/MasterPage.master'파일이 없습니다."라고 주장합니다. aspx 페이지 지시어에는 MasterPageFile = "~/MasterPage.master"가 있습니다. 문제는 내가 어떻게 "/MasterPage.master"보다는 "/wiki/MasterPage.master"라고 생각하는지이다. –

+0

"wiki"폴더가 IIS의 응용 프로그램으로 구성되어 있습니까? –

0

나는 최근에이 작업을해야했고 위키 폴더를 응용 프로그램으로 만들었습니다 (이전 답변에서 제안한 것처럼). 또한 Wiki 응용 프로그램의 최상위 수준에 더미 'App_Themes -> Default'폴더를 배치해야했습니다 부모 앱의 Web.config에 <pages styleSheetTheme="default" theme="default"> 태그가 있기 때문입니다. 작은 해킹,하지만 그건 내가 Asp.Net에서 내 스타일을 구성하는 방법이고, 나는 그것을 변경하고 싶지 않았어.

9

루트 web.config 파일에서 구성 상속을 중지해야 wiki web.config가 루트 web.config에서 아무 것도 읽지 않습니다.

+1

위의 링크에 대한 라이브 사이트가 죽었습니다. 캐시 된 사본은 [여기]에서 찾을 수 있습니다 (http://web.archive.org/web/20131024031827/http://www.aspdotnetfaq.com/Faq/how-to-disable-web-config-inheritance-for- child-applications-in-subfolders-asp-net.aspx) – Fuchida

+0

아카이브로 인해 캐시 된 복사본이 제거되었습니다.org의 robots.txt 정책 –

+0

https://stackoverflow.com/questions/782252/avoid-web-config-inheritance-in-child-web-application-using-inheritinchildapplic – VDWWD

4

다른 사람들이 지적 했듯. 기본적으로 자식 응용 프로그램 Web.config에 넣어야합니다. 물론 도메인 (하위 도메인 등), IIS 설정도 구성해야합니다.

<configuration>  
    <location path="." inheritInChildApplications="false"> 

    //your code here 

    <system.web> 
     //your code here 
    </system.web> 

    //your code here 

    </location>  
</configuration> 
+0

web.config에' 's'가있는 경우, '' 태그 바깥에 있어야합니다. –

관련 문제