Web应用程序和Web网站中WCF中的区别

       最近在通过Web网站管理的方式来修改通过Web应用程序生成的网站的源文件,但是修改之后通过浏览器浏览之后发现根本没有什么变化。最后考虑了一下应该是两者建立的WCF存在不同。 

     1、 Web应用程序中的WCF的源代码会静态编译为DLL文件放在bin目录下,而Web网站WCF的代码是放在App_Code文件夹下,会在网站访问的时候进行动态编译。

     2、两者处理*.svc文件的方式不一样

     Web应用程序的svc文件格式

<%@ ServiceHost Language="C#" Debug="true" Service="WebApplicationWCF.TestService"  CodeBehind="TestService.svc.cs"%>

    在Web应用程序生成网站时会把CodeBehind所指示的文件编译成dll文件,之后在部署网站的时候CodeBehind就不起作用了,可以把这个内容删除,同时其所对应的源代码文件也可以删除,只需知道WCF所对应的Service(名字空间+类)就可以了。    

    Web网站的svc文件格式

<%@ ServiceHost Language="C#" Debug="true" Service="Service"  CodeBehind="~/App_Code/Service.cs" %>

    Web网站中svc文件中Service和CodeBehind都是必不可少的,因为在部署的时候,网站根据CodeBehind所对应的源文件(必须在App_Code文件夹下)进行动态编译,访问的时候则访问Service所对应的类。

     3、Web应用程序在修改WCF源代码之后需要重新编译,而Web网站在修改WCF之后需用重新编译,在第一访问的时候系统会自动进行动态编译的

     4、Web应用程序的WCF源代码生成的DLL文件,而Web网站的源代码是存放在网站上,两者对源代码的安全管理有所不同。对于代码安全问题,可以采用一些其它方式规避

     5、Web应用程序所对应的主文件夹可以直接以Web网站的形式部署到IIS中,但是若修改了其中的源代码,则需要通过VS等工具重新编译更新相应的DLL之后,修改才能生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章