ASHX文件分析器错误-无法创建类型



我从一家正在测试条形码制作的供应商那里得到了一个要安装在IIS上的示例应用程序。

aspx页面运行良好,但当aspx页面调用ashx页面时,我会得到以下错误:

"/BarcodeSample"应用程序中的服务器错误

分析器错误描述:在分析服务此请求所需的资源。请查看以下内容特定的解析错误详细信息并修改源文件适当地。

分析器错误消息:无法创建类型'TECIT.OnlineBarcodes.BarcodeHandler'.

来源错误:

第1行:<%@WebHandler语言="C#"CodeBehind="BarcodeHandler.ashx.cs"Class="TECIT.OnlineBarcodes.BarcodeHandler"%>

源文件:/BarcodeSample/BarcodeHandler.ashx行:1

--------------------------------------------------------------------------------版本信息:Microsoft.NET Framework版本:2.0.50727.3634;ASP.NET版本:2.0.50727.3634

为什么会发生这种情况?如何使这个ashx文件工作?

检查从命名空间开始的类的全名(如果使用)。我遇到了同样的问题,在更改类名后得到了修复,如下所示:

<%@ WebHandler Language="C#" Class="Namespace.ClassName" %>

而不是这个:

<%@ WebHandler Language="C#" Class="ClassName" %>

我发现一个简单的解决方法有效:

  • 将.ashx.cs代码放在.ashx文件的第一行之后
  • 删除.ashx文件第一行的CodeBehind属性
  • 删除代码隐藏文件

在标签下方添加

<%@ Assembly  Name="YourNameSpace.YourHandlerClass, Version=1.0.0.0, Culture=neutral, PublicKeyToken=90e3045b123af1c3" %>

在您的WebHandler标签之上

<%@ WebHandler Language="C#" CodeBehind="BarcodeHandler.ashx.cs" Class="TECIT.OnlineBarcodes.BarcodeHandler" %>

我对名称空间的命名有问题,所以我不得不编辑example.ashx文件(而不是example.ashx.cs)并在那里更改名称空间名称。

我通过解决方案资源管理器重命名了我的处理程序。

VS2017建议只在.cs文件中更改名称,并使ashx文件中的class属性不正确。

在Visual Studio中,单击解决方案资源管理器中的通用处理程序,然后按F4键选择";属性";。确保您的构建操作是";编译";,不仅仅是";内容";。

最新更新