5

我从我正在测试用于制作条形码的供应商处获得了一个示例应用程序以安装在 IIS 上。

aspx 页面工作正常,但是当 aspx 页面调用 ashx 页面时,出现以下错误:

“/BarcodeSample”应用程序中的服务器错误。

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

解析器错误消息:无法创建类型“TECIT.OnlineBarcodes.BarcodeHandler”。

源错误:

第 1 行:<%@ WebHandler Language="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 文件工作?

4

5 回答 5

13

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

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

而不是这个:

<%@ WebHandler Language="C#" Class="ClassName" %>
于 2015-05-24T11:37:19.653 回答
4

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

  • 将 .ashx.cs 代码放在 .ashx 文件的第一行之后
  • 删除 .ashx 文件第一行的 CodeBehind 属性
  • 删除代码隐藏文件
于 2016-09-08T11:12:08.250 回答
1

添加以下标签

<%@ 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" %>
于 2014-01-07T10:00:26.733 回答
1

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

于 2014-02-03T20:23:00.027 回答
0

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

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

于 2018-02-07T06:17:54.533 回答