【发布时间】:2013-12-02 10:19:06
【问题描述】:
我尝试通过global.asax 传送我的 PDF 文件以检查访问权限。
我为此添加到我的 web.config 中:
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
还有
<system.web>
<httpHandlers>
<add verb="GET" path="*.pdf" type="Pipeline.TimeHandler, Pipeline" />
</httpHandlers>
</system.web>
除非我的文件位于 IIS 虚拟目录中,否则这可以正常工作。
要求的信息:
您使用什么版本的 IIS? Microsoft-IIS/7.5
您使用集成模式还是经典模式? 它以集成模式运行。
请求是否完全转移到您的处理程序? 我真的没有处理程序,我只是不想使用集成处理程序。
它是否运行 Application_BeginRequest?
不,它甚至没有打到Application_BeginRequest
您是否在 IIS 中安装了任何非标准 ISAPI 模块? 不,我认为不会。
我将 web.config 编辑为:
<system.webServer>
<handlers>
<add name="ScriptResource.axd_GET,HEAD" path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="*_AppService.axd_*" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="*.asmx_*" path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv2.0" />
<add name="PdfHandler" verb="*" path="*.pdf" type="Pipeline.TimeHandler, Pipeline" />
</handlers>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
然后我删除了httpHandlers,我得到了一个错误:
Could not load file or assembly 'Pipeline' or one of its dependencies. The system cannot find the file specified.
所以我认为问题是`type="Pipeline.TimeHandler, Pipeline" 不起作用。但是我应该在那里配置什么以使用标准 IIS 管道来执行 Application_AuthenticateRequest。
【问题讨论】: