【问题标题】:Web service Parser Error Message: Could not create type 'xxx'Web 服务解析器错误消息:无法创建类型“xxx”
【发布时间】:2013-11-11 14:37:56
【问题描述】:

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

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

这是场景:

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


解析器错误

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

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

来源错误:

第 1 行:

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

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


请帮忙。

【问题讨论】:

  • 你会发布引用 AuthenticateUser.cs 的代码/脚本吗?默认情况下,我有以下可用于 v4.0.30319:ApplicationConfigurationPage.cs、NavigationBar.cs、PasswordValueTextBox.cs、ProvidersPage.cs、SecurityPage.cs、WebAdminPage.cs、WizardPage.cs

标签: web-services c#-4.0 iis-7.5


【解决方案1】:

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

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

会变成

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

【讨论】:

  • 网站返回这个错误怎么办?我可能没有项目名称。
  • @SuvenduShekharGiri 错误是由 Web 服务引起的。必须有一些实现或定义服务的类,请检查它是否具有完全限定名,即具有完整命名空间的类名。
  • 感谢您的回复!我解决了。就我而言,这是一个愚蠢的错误。我忘记将 .cs 文件提交给 SVN。不管怎样,谢谢你的回复:)
  • 我几乎到处找。这对我帮助很大。非常感谢!
  • 对我来说,在添加新服务后重建项目后解决了这个问题。只是不要忘记重建一个项目。当然,在重命名 asmx 文件后检查您的 Class="name" 是否具有适当的名称。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我下载了Beyond compare,将我的新Web 服务目录与旧目录进行了比较……你猜怎么着?缺少一个 dll。哦地狱!我怎么错过了。感谢您的回答。 :)
    • 我认为它也与目录结构有关。我运行了“重建项目”,它又开始为我工作了;不知道我一开始是怎么弄坏的。
    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      问题是 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
      

      【讨论】:

        【解决方案6】:

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

        然后它会工作..

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-18
          • 1970-01-01
          • 1970-01-01
          • 2022-09-23
          • 2020-06-15
          • 2019-11-02
          • 2021-11-14
          • 2014-12-03
          相关资源
          最近更新 更多