分析器错误:无法创建类型

Meg*_*han 35 .net c# asp.net web-services

我创建了webservice并在本地机器上发布.然后我把它上传到服务器上.

现在,当我尝试访问webservice时,它会出现以下错误:

Parser Error Message: Could not create type 'webservice.myservice'

Source Error: Line 1: <%@ WebService Language="C#" CodeBehind="myservice.asmx.cs" Class="webservice.myservice" %>

我试过这个链接但无法解决我的问题.

我该怎么办?

Joh*_*hnW 52

Dunno,如果这是从昏暗和遥远的过去拖东西..但我有这个问题..修复它..所以我想我分享

当您在Visual Studio中创建Web服务时(我使用的是2010,但我想其他人也一样),它会创建一个名为 Service1.asmx

你会被诱惑重命名为MyService.asmx(或其他)

然后你会看到内部并看到线

public class Service1: System.Web.Services.WebService
Run Code Online (Sandbox Code Playgroud)

你会改变的

public class MyService: System.Web.Services.WebService
Run Code Online (Sandbox Code Playgroud)

然后当你尝试运行它时,你会得到错误

无法创建"MyProject.MyService"类型

因为它仍然认为这个类叫做Service1 ..

如果你右键单击该.asmx文件并选择视图标记,你会看到它仍然说

<%@ WebService Language="C#" CodeBehind="MyService.asmx.cs" Class="MyProject.Service1" %>
Run Code Online (Sandbox Code Playgroud)

改为

<%@ WebService Language="C#" CodeBehind="MyService.asmx.cs" Class="MyProject.MyService" %>
Run Code Online (Sandbox Code Playgroud)

保存吧..试试吧..

为我工作..

  • 我有这个问题,我有一个不同的问题,所以这里有其他沮丧的人的解决方案.如果更改构建目标文件夹,它将停止工作.您必须将构建的输出复制回.\ bin \ (5认同)

小智 8

我有同样的问题并且长时间寻找它!

我尝试了很多东西,包括以下内容:

这些都不适合我.经过一些搜索,测试和诅咒,我终于找到了问题:应用程序(webservice)被错误托管.

让我用一点背景解释一下:

我有一个包含两个解决方案的项目:一个解决方案是我制作的网站(html,javascript等),另一个解决方案包含一个包含业务逻辑,数据库模型和web服务的文件夹.显然,webservices文件夹包含我的.asmx文件和代码隐藏.

  • 项目
    • 数据核心
      • 数据库模型
      • 商业逻辑
      • 网页服务
        • myWebservice.asmx
    • 网站

我通过以下方式托管这些:

  • 我的网站作为新网站托管,网站文件夹为根文件夹
  • 我的webservices我作为一个应用程序在我的网站托管,webservices文件夹作为root

更直观:

  • IIS 7
    • 我的网站=>指向"网站"文件夹
      • Webservices Application =>指向Data Core中的"Webservices"文件夹

这导致以下URL" http://website/webservices/myWebservice.asmx ",它给了我"无法创建类型"错误.

现在,在玩了一下后,我尝试托管我的webservice应用程序,从数据核心开始,而不是webservice文件夹.

视觉:

  • IIS 7
    • 我的网站=>指向"网站"文件夹
      • Webservices Application =>指向"Data Core"文件夹.

显然使用与以前相同的URL会给我一个"找不到文件"错误.但是,使用以下URL" http://website/webservices/webservices/myWebservice.asmx ",我终于得到了我的工作 webservices页面!

一个小网址细分:

  • http:// website/=>我的网站来自"网站"文件夹
    • webservices/=>相当于"Data Core"文件夹
      • webservices/=>"Data Core"文件夹中的"webservices"文件夹
        • myWebservice.asmx =>"webservices"文件夹中"Web Core"文件夹中的webservice文件

我假设因为我直接从Data Core中的"webservices"文件夹托管我的webservices,服务器找不到webservices的编译DLL(它位于"bin"文件夹中),因为我在更深层次.

更改配置并从"Data Core"文件夹托管Web服务后,IIS服务器可以"看到"bin文件夹并成功托管Web服务.当使用正确的URL ^ _ ^时

我希望这很清楚,帮助你解决问题!


has*_*san 5

可能导致问题的另一件事。没有为该项目创建应用程序时会抛出IIS本身。

开始->搜索IIS

打开它!!

右键单击“默认网站”或您打算向其发布服务的网站。

添加应用程序 ... 输入一个别名。“ MyWebService” ... 选择物理路径。就我而言,C:\inetpub\wwwroot\MyWebService这是我的默认网站路径。

然后,当您发布throw Visual Studio时,请选择该文件夹。或只是将代码文件复制到其中。

  • 谢谢@hasan!你为我节省了很多时间! (2认同)