0

iFrame を Orchard CMS セクションに埋め込もうとしています (同じドメイン - コントロールはメインの Orchard インストールのサブディレクトリにあります)。ここで、私が抱えている問題について話している 2 つのスレッドを見つけましたが (ここここを参照)、まだ問題が発生しています。iFrame に読み込もうとしているページは標準の WebForms であり、WebResource.axd と ScriptResource.axd の両方が必要です。WebResource.axd を動作させることができましたが、ScriptResource は 500 Internal Server Error (Chrome によると) を返していますが、500 の原因や実際のエラーが何であるかを理解できません。私の web.config からの関連エントリは以下のとおりです - 何か提案はありますか?

<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>
4

1 に答える 1

0

Bertrandの提案とたくさんの遊びを組み合わせて、私はこれに対する解決策を見つけることになりました。

まず、カスタムのものはサブフォルダーにある必要があり、IIS内で、そのサブフォルダーをアプリケーション(仮想ディレクトリではない)に切り替えることができます。少し安心できるように、専用のアプリプールも用意しました。これで何かがおかしくなっても、メインサイトがダウンすることはありません。

次の部分には、いくつかの手順が含まれます。これは主に、system.webServer/handlersの<clear/>エントリが原因です。親アプリでこれを削除するとOrchardが壊れますが、親からすべての設定を継承するため、子アプリでこれを削除すると壊れます。これを回避するには、子アプリに次の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>

ここで参照されているSOリンクを使用して、必要な「実際の」ScriptResource.axd参照を見つけましたが、すべてが機能しているように見えます。

于 2012-11-30T02:49:50.520 に答える