我這個糾結呀,公司用win8,?.NET 4.5。想做一個很簡單的項目,就是wcf宿主iis,項目根目錄下有aspx文件和svc文件。于是參考了一個博客http://www.cnblogs.com/yjmyzz/archive/2008/08/19/1270961.html,[原創]WCF入門級使用教程(轉載請注明出處)?是個牛人寫的。照著這個一步步來,但是期間遇到不少問題,現在總結如下:
1.按照博主說的,建立四個項目,項目名字不要叫01_WCF,02_BLL,...直接叫BLL,WCF,WEB。。。就好了。(因為本人純菜鳥,命名空間什么的玩不轉);
2.前5步都OK,但是到第六步的時候,本人大笨蛋,說是建一個目錄叫WCF,然后在這里添加一個WCF Service,命名為CalculateService,這都是ok的,但是說要把里面的文件都刪掉,只留CalculateService.svc。 于是我把I接口刪了,發現雙擊svc文件出現的是.cs的C# 代碼。是因為這個svc下的svc.cs沒有刪掉哦!!!接著雙擊改這里面的東西。我這個聽話的孩子,讓BLL 項目引用的WCF,WEB引用BLL, 這樣下去編譯可能會有兩個警告,但是好像無所謂的樣子。如果不想看到警告,就WEB也引用WCF。
<%@ServiceHostLanguage="C#"Debug="true"Service="WCF.CalculateService"%>
?
3.web.config的配置,照著原文做就可以了。記得把之前的注釋掉,只留一個System.serviceModel節點。
4.值得一提的是使用svcutil這個工具的時候,win8的這個目錄Microsoft SDKs\Windows\v7.0A\Bin找不到呀,還以為.net 4.5就不支持svcutil,就從http://originaldll.com/file/svcutil.exe/31570.html 這里下載,但是不知道是不是版本太早了,生成文件的時候,只有output.cs。而不是output.config和**service.cs。
一陣狂百度,發現不行,就一陣狂google。
http://www.infoq.com/news/2013/01/net-framework-updated
這里說有關svcutil.exe還在.net 4.5里有更新,我就醉了,我咋找不到呢?于是我想到了命令行,搜索visual studio tools 在start里。然后進入文件夾,運行 Developer Command Prompt for VS2013
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64> 跑命令 PS C:\users\administrator\downloads> svcutil http://機器名:端口號/wcf/CalculateService.svc?wsdl?就可以生成文件了。啊哈哈今天還是算有收獲呀~不過沒找到bug~
?