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之後,修改才能生效。

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