19

当我尝试浏览我的 Web 服务时遇到解析器错误。

已经找到了很多答案,但没有一个对我有帮助。如果有人可以指导我找到我可能忽略的有用链接,那将有很大帮助。

这是场景:

我在使用“ASP.NET v4.0 Classic”应用程序池的 IIS 7.5 上托管了内置于 VS-2010(框架 4.0)的 Web 服务。在我重新安装它之前,这曾经工作正常。它开始显示下面的错误


解析器错误

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

解析器错误消息:无法创建类型“AuthenticateUser”。

源错误:

第 1 行:<%@ WebService Language="C#" CodeBehind="~/App_Code/AuthenticateUser.cs" Class="AuthenticateUser" %>

源文件: /WebService101/Services/AuthenticateUser.asmx 行: 1

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.1016


请帮忙。

4

6 回答 6

18

我遇到了同样的错误,在我的情况下,解决方法是在 .asmx 文件中使用完全限定的类名(带命名空间的类名)。

<%@ WebService Language="C#" CodeBehind="~/App_Code/AuthenticateUser.cs" Class="AuthenticateUser" %>

会成为

<%@ WebService Language="C#" CodeBehind="~/App_Code/AuthenticateUser.cs" Class="MyProjectName.AuthenticateUser" %>
于 2013-11-21T13:11:02.930 回答
17

此外,请检查以确保构建输出路径仅指向“bin\”文件夹。如果生成的 DLL 文件卡在“bin\Debug\AnyCPU”或“bin\Release\x86”下,Web Service 项目将无法使用它们。

一位同事和我花了 2 个小时试图让一个 Web 服务项目在一台新工作站上运行,而该工作站在一台旧机器上运行良好。

希望这个提示可以帮助其他使用 Google 的人!

于 2014-09-26T23:52:49.000 回答
13

请检查您的所有 dll 是否都存在于 Web 服务文件夹中。我能够在一个名为“Beyond Compare”的工具的帮助下找到这个。我将 Web 服务目录的旧工作副本与新的工作副本进行了比较。

于 2013-11-21T12:53:44.377 回答
1

我有这个问题,我绞尽脑汁好几天在网上做了很多研究。这基本上是因为文件和类必须是相同的名称,即我从其他地方剪切了代码,并且该类被称为 fileUploader。该文件名为 fileuploader.ashx。

所以,这就是造成我的问题的原因。当我将类重命名为 fileuploader 时,它运行良好。啊啊啊!!浪费了好几天!

于 2016-07-06T14:16:07.287 回答
1

问题是 ASP 正在寻找一个名为 AuthenticateUser 的类,但它找不到它。

在 Visual Studio 中,右键单击 web 服务文件 (AuthenticateUser.asmx) 并选择“查看标记”。这将让您找到错误所在的 asmx 文件的第 1 行。看看这一行的结尾。在你的例子中,

Line 1: <%@ WebService Language="C#" CodeBehind="~/App_Code/AuthenticateUser.cs" Class="AuthenticateUser" %>

检查该类是否与您为 Web 服务提供的公共类名称相匹配。换句话说,您是否在创建此文件后将类重命名为“AuthenticateUser”或其他名称?有时,第 1 行中提到的类与您在 webservice asmx 文件中为类指定的名称不匹配。

要解决此问题,您的 web 服务开头的行应与第 1 行中提到的类匹配,如下所示:

Public Class AuthenticateUser

    ...your webservice code here...

End Class
于 2019-05-01T07:30:22.730 回答
0

像这样删除站点/Tokhin/ 部分:

然后它会工作..

于 2016-11-15T13:33:07.623 回答