我有一个在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,只是直接的代码。有什么建议吗?
由于
吉姆
答案 0 :(得分:0)
您是使用手动编码还是在Visual Studio中?假设手工编码。
创建名为DEMOAddNumbers.asmx的新ASMX文件并将此行放入其中
创建名为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; } }
您无法在ASMX上拥有直接代码。如果你想“直接代码”转移到WCF。
答案 1 :(得分:0)
摆脱指令指向文件背后的代码。然后,您可以将代码嵌入ASMX中。
我建议在类中添加命名空间和所有适当的属性,但是一旦停止让ASP.NET引擎查找文件后面的代码,它就应该可以工作。