Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何在不使用app_代码目录的情况下编写asmx web服务?_.net_Web Services_Asmx - Fatal编程技术网

.net 如何在不使用app_代码目录的情况下编写asmx web服务?

.net 如何在不使用app_代码目录的情况下编写asmx web服务?,.net,web-services,asmx,.net,Web Services,Asmx,请原谅标题,但我最好只是解释一下问题 我的解决方案中有两个项目 类库 由Web服务(asmx)组成的Web应用程序 web服务的代码位于app_code文件夹中,其中包含一个文件[webservicename].cs 在webservice代码隐藏类中,我有一个web方法,下面是一个示例(其简化): 现在在设计时,在VisualStudio(2010或2008)中,我右键单击UploadTaskMananger,然后选择“转到定义”。我被带到AppData\Temp[一些文件夹结构]…等等。。。

请原谅标题,但我最好只是解释一下问题

我的解决方案中有两个项目

  • 类库
  • 由Web服务(asmx)组成的Web应用程序 web服务的代码位于app_code文件夹中,其中包含一个文件[webservicename].cs

    在webservice代码隐藏类中,我有一个web方法,下面是一个示例(其简化):

    现在在设计时,在VisualStudio(2010或2008)中,我右键单击UploadTaskMananger,然后选择“转到定义”。我被带到AppData\Temp[一些文件夹结构]…等等。。。。并显示公共类定义

    相反,我希望有完整的集成,这样我就可以直接进入类库项目中的实际类

    我的猜测是,这是因为我使用的是app_代码路由,而不是web服务类的编译文件。但我不知道还有什么别的办法

    我怎样才能解决这个问题?可能不需要应用程序代码目录吗?

    这很容易

    第一步。。。生成新web服务时,也会生成app_code/.cs文件。 从该类复制签名,它将在步骤4中用作模板

    第二步。。。删除生成的app_code/.cs文件

    第三步。在类文件中,创建名称空间和文件夹结构,在其中包含包含web方法的web服务类。例如Class1.WebServices

    第四步。在Namespace Class1.WebServices中(根据上面的示例),创建一个新类,然后用步骤1中复制的类签名替换默认类签名

    第五步。立即编辑web服务,并创建web方法

    第六步。例如,在web应用程序中,编辑asmx文件以引用没有代码隐藏的类

    <%@ WebService Language="C#"  Class="Class1.WebServices.WebServiceClass" %>
    
    
    

    第七步,测试

    您必须使用文件->新建网站来创建web服务。我强烈建议您不要在网站中构建web服务

    相反,通过使用文件->新建项目并选择“WCF服务应用程序”来创建web服务。如果您无法使用ASMX web服务(Microsoft现在认为这是“遗留技术”),请选择“ASP.NET web服务应用程序”

    这两个项目都是Web应用程序项目,其行为与VisualStudio中的所有其他项目类型类似


    除此之外,将没有应用程序代码文件夹。

    +1表示没有应用程序代码。自从3.5版本以来,我真的不忍心再看一次WCF,因为普遍的共识是它的方式太复杂了(是的,它糟透了)。当我再次感到勇敢时,我会查看WCF 4以下是MS对WCF 3.x的看法——直接从马口中说:现实是,WCF配置通常成为当今实践中使用WCF成本最高的领域,而这种复杂性的大部分落在了没有准备好处理它的IT/运营人员身上。@JL:您一定把实体框架与WCF混淆了。版本4中没有重大更改-您无法修复如此接近完美的东西。如果你不需要复杂的东西,那就不复杂了。创建一个“hello,world”服务并查看代码。不要费心查看每个配置属性-默认生成的配置包括不需要指定的默认值。@JL:该引号的来源是什么?我在现实生活中没有发现这种情况。@JL我相信这句话的来源是一篇对比WCF与WCF4变得多么容易的文章,特别是在配置方面。
    <%@ WebService Language="C#"  Class="Class1.WebServices.WebServiceClass" %>