首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IIS使用泛型处理程序解析错误

问使用IIS使用泛型处理程序解析错误
EN

Stack Overflow用户
提问于 2011-10-26 17:16:44
回答 3查看 11.2K关注 0票数 1

让我好奇的是,当我在中运行ASP.NET应用程序时,通用处理程序工作得很好。当我更改配置以直接从IIS运行它时,处理程序就会死掉。

它是一个图像处理程序,它写回要在image对象中呈现的字节数组。正如我所说,它在VS Development中运行良好,但在IIS上失败。甚至连电话都没有..。

当我试图直接调用它时,我遇到的错误是:

解析器错误描述:在解析服务此请求所需的资源时发生错误。请查看以下具体的解析错误详细信息,并适当地修改源文件。解析器错误信息:无法创建'YourImageHandler‘类型。源错误:第1行:<%@ WebHandler Language="C#“CodeBehind="YourImagehandler.ashx.cs”Class="YourImageHandler“%>

Web.config上的处理程序:

代码语言:javascript
复制
<system.web>
    <httpHandlers>
      <add verb="*" path="*.ashx"  type="YourImageHandler"/>
    </httpHandlers>
</system.web> 

泛型处理程序位于Web项目的同一个程序集中,整个过程都在IIS 7上运行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-26 19:41:19

如果您在管道模式下使用IIS 7,则处理程序定义必须处于中,如下所示:

代码语言:javascript
复制
<system.webServer>
<handlers>
    <add name="YourImageHandlerName" path="*.ashx" verb="*" type="YourImageHandler" />
</handlers>
</system.webServer>

检查这里:http://blogs.msdn.com/b/tmarq/archive/2007/08/30/iis-7-0-asp-net-pipelines-modules-handlers-and-preconditions.aspx

IIS7.0有两种管道模式:集成模式和经典模式。后者有时被称为ISAPI模式。 集成模式允许托管模块和本机模块注册IIS管道中的事件。这允许许多新的方案,例如将ASP.NET窗体身份验证应用于非ASP.NET请求(静态文件、经典ASP文件等)。 经典模式与IIS6.0完全相同。在经典模式下,ASP.NET管道(BeginRequest,AuthenticateRequest,…),EndRequest)完全在IIS管道的EXECUTE_REQUEST_HANDLER事件中运行。将经典模式下的ASP.NET想象为管道中的管道。

另一种选择是以“经典”模式运行您的站点,在经典模式下IIS 7的工作方式类似于IIS 6,并且具有与Cassini web服务器相同的行为(在这里非常重要)。

希望能帮上忙。

票数 8
EN

Stack Overflow用户

发布于 2016-06-02 06:27:35

您必须在preCondition文件中添加web.config属性

代码语言:javascript
复制
    <add name="HandlerName" verb="*" path="Handlers/HandlerName.ashx" type="Namespace/HandlerClassName, MyAssembly, Version=1.0.*, Culture=neutral" preCondition="classicMode,runtimeVersionv4.6.1"/>

它正在弥补我的错误。

票数 3
EN

Stack Overflow用户

发布于 2011-10-26 19:14:11

我认为您应该将托管处理程序映射添加到IIS。仅仅添加配置是不够的。你看上去像这里。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7906344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档