请原谅标题,但我最好解释一下这个问题。
我的解决方案中有2个项目
网络服务的代码位于app_code文件夹中,文件为[webservicename] .cs
在课堂后面的webservice代码中,我有一个web方法,这是一个示例(简化):
[WebMethod]
public EnumTaskExportState ProcessTask()
{
var tm = new UploadTaskManager();
return tm.ProcessTask();
}
现在在设计时,在visual studio(2010或2008)中,当我右键单击UploadTaskMananger,然后选择“转到定义”。我被带到AppData \ Temp [一些文件夹结构] ......等....它显示了公共类定义。
相反,我想要完全集成,这样我就可以直接进入类库项目中的实际类。
我的猜测是,这种情况正在发生,因为我使用的是app_code路由,而不是Web服务类的编译文件。但我不知道有任何其他方法可以做到这一点。
我该如何解决这个问题?可能会取消对app_code目录的需求吗?
答案 0 :(得分:3)
您必须使用File-> New Web Site创建Web服务。我强烈建议您永远不要在网站上构建Web服务。
而是使用File-> New Project并选择“WCF Service Application”来创建您的Web服务。如果您使用ASMX Web服务(Microsoft现在认为是“遗留技术”),请选择“ASP.NET Web服务应用程序”。
这些都是Web应用程序项目,其行为与Visual Studio中的所有其他项目类型相同。
除此之外,还没有App_Code文件夹。
答案 1 :(得分:2)
非常简单
步骤1 ...当您生成新的Web服务时,也会生成app_code / .cs文件。 从该类复制签名,它将在步骤4中用作模板。
第2步...删除生成的app_code / .cs文件
步骤3.在类文件中,创建一个名称空间和文件夹结构,您将在其中包含包含Web方法的Web服务类。例如Class1.WebServices
步骤4.在命名空间Class1.WebServices中(如上例所示),创建一个新类,然后用步骤1中复制的类签名替换默认类签名。
步骤5.立即编辑Web服务,并创建Web方法
步骤6.在Web应用程序中,编辑asmx文件以引用没有代码的类,例如
<%@ WebService Language="C#" Class="Class1.WebServices.WebServiceClass" %>
第7步,测试!