Web服务分析器错误消息:无法创建类型'xxx'

时间:2013-11-11 14:37:56

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

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

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

以下是该方案:

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


  

分析程序错误

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

分析程序错误消息:无法创建类型“AuthenticateUser”。

来源错误:

  

第1行:<%@ WebService语言=“C#”   CodeBehind =“〜/ App_Code / AuthenticateUser.cs”Class =“AuthenticateUser”   %GT;

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

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


请帮助。

6 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:13)

我遇到了同样的错误,在我的案例中,决议是在.asmx文件中使用完全限定类名(带名称空间的类名)。

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

会变成

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

答案 2 :(得分:13)

另外,请检查以确保构建输出路径仅限于“bin”文件夹。如果Web服务项目被困在“bin \ Debug \ AnyCPU”或“bin \ Release \ x86”下,则无法使用生成的DLL文件。

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

希望此技巧可以帮助其他人使用Google!

答案 3 :(得分:1)

我遇到了这个问题,我在网上喋喋不休,并在网上进行了大量的研究。这基本上是因为文件和类必须是同一个名称,即我从其他地方剪切了代码,并且该类被称为fileUploader。该文件名为fileuploader.ashx。

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

答案 4 :(得分:0)

删除网站/ Tokhin / part 像这样:

然后它会工作..

答案 5 :(得分:0)

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