我正在关注this教程,以便在用户输入时从SQL服务器创建动态搜索结果。它告诉我创建一个.asmx文件,这不是我之前曾经使用过的格式。我现在有一个.asmx和.asmx.cs文件。这是我到目前为止的代码:
WebService.asmx.cs:
public class SearchService : WebService
{
[WebMethod]
public searchResult[] Search(string txtSearch)
{
//Declare collection of searchResult
List resultList = new List();
var db = Database.Open("mPlan");
var result = db.Query("SELECT * from Users where Username like '%" + txtSearch + "%'");
try
{
foreach(var record in result)
{
searchResult result = new searchResult();
result.Username = ["Username"].ToString();
resultList.Add(result);
}
return resultList.ToArray();
}
catch
{
return null;
}
}}
WebService.asmx:
<%@ WebService Language="C#" class="WebService" %>
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;
[System.Web.Script.Services.ScriptService]
[System.Web.Script.Services.GenerateScriptType(typeof(searchResult))]
public class searchResult
{
public string Title;
public string img;
public string href;
}
这是我的错误消息,有人可以帮我这个吗?
分析程序错误消息:无法创建类型“WebService.asmx.cs”
它突出显示了WebService.asmx的第1行作为错误的来源。
答案 0 :(得分:5)
当我的项目输出目录不是bin \
时,我使用Visual Studio Development Server遇到此错误我的一个DLL有不同平台的版本(x86,x64),所以我创建了相应的配置,默认输出目录如下:“bin \ x86 \ Dedug”,“bin \ x64 \ Debug”。但Visual Studio开发服务器仍尝试从bin \文件夹加载二进制文件,当然也失败了。
我通过在调试配置中指定bin \ output文件夹来修复此问题。
答案 1 :(得分:4)
class="..."
需要一个完全限定的类名,而不是文件名。
答案 2 :(得分:2)
正确的类名是“SearchService”。您指定了文件名。