2012-11-28 2 views
0

나는 Orchard CMS 섹션 (동일한 도메인 - 컨트롤은 주 오차드 설치에서 하위 디렉토리에 살고)에 iFrame을 포함하려고합니다. 나는 여기에 두 개의 스레드가 내가 가지고있는 문제 (herehere 참조)에 대한 이야기를 발견했지만 여전히 문제가 있습니다. iFrame에서로드하려고하는 페이지는 표준 WebForms이며 WebResource.axd와 ScriptResource.axd가 모두 필요합니다. WebResource.axd가 작동하도록 만들었지 만 ScriptResource는 Chrome에 따라 500 개의 내부 서버 오류를 반환하지만 실제로 발생하는 오류의 원인을 파악할 수 없습니다. 내 web.config의 관련 항목은 아래에 있습니다 - 제안 사항은 무엇입니까?과수원, WebForms 및 iFrames

<handlers accessPolicy="Script"> 
    <!-- clear all handlers, prevents executing code file extensions, prevents returning any file contents --> 
    <clear /> 

    <!-- Custom Controls --> 
    <add name="ASPX" path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode" requireAccess="Script"/> 
    <add name="WebResource" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode" /> 
    <add name="ScriptResource" path="ScriptResource.axd" verb="GET" type="System.Web.Handlers.ScriptResourceHandler" preCondition="integratedMode" /> 

    <!-- Everything below added from Orchard --> 
    <!-- Return 404 for all requests via managed handler. The url routing handler will substitute the mvc request handler when routes match. --> 
    <!--<add name="NotFound" path="*" verb="*" type="System.Web.HttpNotFoundHandler" preCondition="integratedMode" requireAccess="Script" />--> 

    <!-- WebApi --> 
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
</handlers> 
+0

올바른 스택 추적을 얻으려면 사용자 지정 오류를 해제하십시오. 하지만 실제로 가장 좋은 방법은 완전히 별도의 응용 프로그램에 webforms 물건을 넣어하는 것입니다. 이미 iframe에서 사용하고 있으므로 중요하지 않습니다. –

+0

나는 그것을 시도했지만 (여전히 그것으로 놀고있다), 운은 없다. 문제는 상위 구성의 항목 인 것 같습니다. 하위 응용 프로그램 (가상 디렉토리가 아님) 내부에서 ScriptResource.axd는 system.webServer/핸들러 내부의 부모에서 태그를 제거 할 때까지 404를 반환하지만이 제거는 Orchard를 매우 나쁘게 만듭니다. 다른 제안? – RubyHaus

+0

Orchard 응용 프로그램 아래의 응용 프로그램 *이 아닌 다른 응용 프로그램 *. Orchard를 \ Inetpub \ wwwroot에 넣으면 처음에는 좋은 생각이 아닙니다. 다른 곳의 vdir을 만들거나 그 아래에 vdir을 만들고 그 디렉토리에 IIS를 지정하는 것이 좋습니다. 희망이 도움이됩니다. –

답변

0

버트 랜드의 제안과 많은 놀음을 결합하여 나는이 문제에 대한 해결책을 찾았습니다.

먼저 사용자 지정 항목은 하위 폴더에 있어야하며 IIS 내부에서는 해당 하위 폴더를 응용 프로그램 (가상 디렉터리가 아닌)으로 전환 할 수 있습니다. 약간의 마음의 평화를 위해, 나는 또한 전용 애플 리케이션 풀을 주었다. 그래서 어떤 것이 이상하게 생기면 메인 사이트가 다운되지 않았다.

다음 부분은 system.webServer/handlers에 < clear/> 항목이 있기 때문에 몇 단계가 필요합니다. 상위 응용 프로그램에서 이것을 제거하면 오차드가 손상되지만 부모로부터 모든 설정을 상속하므로 내 자식 응용이 손상됩니다. 이 해결하기 위해, 내 자식 응용 프로그램은 다음의 system.webServer 구성해야했다 :

<system.webServer> 
    <handlers> 
    <remove name="NotFound" /> 
    <add name="ASPX" path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode" requireAccess="Script"/> 
    <add name="WebResource" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode" /> 
    <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    </handlers> 
    <modules> 
    <remove name="WarmupHttpModule" /> 
    </modules> 
</system.webServer> 

내가 필요했다 "진짜"ScriptResource.axd 참조를 찾을 here를 참조 SO 링크를 사용하고는 모두 같습니다 일하고있다.