无法使用Code Behind创建类型

时间:2015-02-25 18:55:32

标签: c# asp.net web-services

我有一个在IIS 6中工作但在IIS 7中不起作用的Web服务。为了测试Web服务是否正常工作,我在ASMX文件中创建了一个简单的Web服务,如下所示:

<%@ WebService Language='c#' Class="DEMOAddNumbers" %>
using System;
using System.Web.Services;
public class DEMOAddNumbers : WebService
{
    [WebMethod]
    public int AddThis(int x, int y)
    {
        int mySum;
        mySum = x + y;
        return mySum;
    }
}

此Web服务有效,但当我使用CodeBehind并将代码放入DEMOAddNumbers.CS文件时,它说,

无法创建“DEMOAddNumbers”类型

我尝试了各种方法来引用DEMOAddNumbers.cs,例如:

<%@ WebService Language='c#' Class="DEMOAddNumbers" CodeBehind='DEMOAddNumbers.cs' %>

<%@ WebService Language='c#' Class="DEMOAddNumbers" CodeBehind='~/DEMOAddNumbers.cs' %>

将其放在App_Code目录中,然后:

<%@ WebService Language='c#' Class="DEMOAddNumbers" CodeBehind='~/App_Code/DEMOAddNumbers.cs' %>

仍然是相同的错误消息。我没有使用Visual Studio,只是直接的代码。有什么建议吗?

由于

吉姆

2 个答案:

答案 0 :(得分:0)

您是使用手动编码还是在Visual Studio中?假设手工编码。

  1. 创建名为DEMOAddNumbers.asmx的新ASMX文件并将此行放入其中

  2. 创建名为DEMOAddNumbers.asmx.cs的新ASMX.CS文件并将其放入其中

    使用System; 使用System.Web.Services; 公共类DEMOAddNumbers:WebService {   [的WebMethod]   public int AddThis(int x,int y)   {     int mySum;     mySum = x + y;     返回mySum;   } }

  3. 您无法在ASMX上拥有直接代码。如果你想“直接代码”转移到WCF。

答案 1 :(得分:0)

摆脱指令指向文件背后的代码。然后,您可以将代码嵌入ASMX中。

我建议在类中添加命名空间和所有适当的属性,但是一旦停止让ASP.NET引擎查找文件后面的代码,它就应该可以工作。