1

ワイルドカードマッピング用にIISで構成されたISAPIDLLがあります。リクエストURLが静的ファイルに対応している場合、IISのStaticFileModuleがそのファイルを提供するようにします。ファイルが存在しない場合は、ISAPIDLLで処理してください。

静的ファイル階層のルートにあるweb.configのハンドラーセクションは次のようになります...

<handlers accessPolicy="Read, Script">
    <clear />
        <add name="SomeIsapiDll" path="*" verb="*" type="" 
            modules="IsapiModule" scriptProcessor="C:\my_site\some_isapi.dll" 
            resourceType="Unspecified" requireAccess="None" allowPathInfo="false" 
            preCondition="" responseBufferLimit="4194304" />
        <add name="StaticFile" path="*" verb="*" type="" 
            modules="StaticFileModule,DefaultDocumentModule" scriptProcessor="" 
            resourceType="Unspecified" requireAccess="None" allowPathInfo="false" 
            preCondition="" responseBufferLimit="4194304" />
</handlers>

これはISAPIDLLを対象とした要求に対して機能しますが、静的ファイルは404として返されます。順序を逆にすると、要求のコンテンツがない空白のページが表示されます。web.configからISAPIDLLを削除すると、静的ファイルは正しく提供されますが、もちろん、ISAPI要求は提供されません。

私の理解では、カスケードワイルドカードハンドラーは機能するはずですが、私が見つけることができるMicrosoftのドキュメントは、これを実現する方法について非常にあいまいです。これは、構成の問題またはISAPI DLL実装の問題のいずれかである可能性がありますが、現時点ではわかりません。考え?

4

1 に答える 1

1

私たちは同じ問題を抱えていたので、これらを追加しました:

<add name="aspnet_isapi 32-bit" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" />

<add name="aspnet_isapi 64-bit" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
于 2009-07-02T22:48:00.113 に答える