部署WCF到Windows 2016 IIS踩坑記

不做開發好多年,IIS都不會用了。

用C# fx4.5做了個測試的WCF,想發佈到一臺跑着Windows 2016的測試虛擬服務器上。這臺服務器原先只測試SQL2016的,所以先添加Web Server角色。默認選項走起。fx4.6功能倒是默認有的,那就不管了。

然後添加應用程序。應用程序池怎麼只有個4.0的?不管,把我的WCF強行布上去再說。果然不行,500錯。

肯定哪裏不對了。從自帶的默認站點靜態html頁測起。倒是可以訪問。默認站點內再添加一個用於測試的test.aspx文件,裏面只一句話<%=System.DateTime.Now.ToString()%>,訪問後得到了404錯。這把確認asp.net沒啓用。仔細再查一下IIS角色配置,果然有個坑,Web服務器選項下還有“應用程序開發”要選。。。於是選上asp.net4.6。再測test.aspx,果然能顯示了。愉快的在瀏覽器裏把URL改到我的svc,居然還是404。

複製一份test.aspx到我的應用程序目錄中,可以運行。那就說明什麼wcf相關的功能沒啓用。再查一遍,果然發現在Framework功能下,WCF服務還需要啓用http激活

最後把自己的應用程序刪了重建,應用程序池選用v4.5經典,曾經熟悉的svc頁面終於又出現了。

順便說一句,網上很多文章說要用aspnet_regiis和serviceModelReg之類的命令修復,到了win server 2016貌似已經不支持了。

==========

C#調用的坑:
報application/soap+xml與text/xml不兼容:客戶端app.config中,<binding name="...."/>這一節需要展開,插一段<security mode="None"/>

樹莓派調用:
居然比用C#開發Client要順,suds直接就支持,一點都不折騰。。。
 

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