掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在我們調(diào)試程序的時(shí)候有時(shí)會(huì)為了端口的問題而導(dǎo)致程序錯(cuò)誤,我們就WCF端口的問題和大家一起分享一下,如果使用Visual Studio 2008SP1開發(fā)WCF應(yīng)用程序時(shí),會(huì)發(fā)現(xiàn)當(dāng)使用Visual Studio 2008的新建“WCF服務(wù)”模板向項(xiàng)目中添加WCF服務(wù)時(shí),Visual Studio 2008總是使用wsHttpBinding綁定,并且使用以下格式的地址:

創(chuàng)新互聯(lián)是一家專業(yè)提供平利企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為平利眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
- <addbaseAddressaddbaseAddress="http://localhost:8731/Design_Time_Addresses/WCF服務(wù)名"/>
- baseAddresses>
- host>
這里面有一個(gè)神秘的WCF端口8731和一個(gè)神秘的地址Design_Time_Addresses。
讓我們來做個(gè)實(shí)驗(yàn):
在Vista中關(guān)閉用戶賬戶控制,然后啟動(dòng)VisualStudio2008,基于新建“WCF服務(wù)”模板向項(xiàng)目中添加一個(gè)WCF服務(wù)(不妨取名MyWCFService),生成的默認(rèn)服務(wù)地址為:
- <addbaseAddressaddbaseAddress="http://localhost:8731/Design_Time_Addresses/MyWCFService/"/>
- baseAddresses>
去掉Design_Time_Addresses,將其改為:
- <addbaseAddressaddbaseAddress="http://localhost:8731/MyWCFService/"/>
- baseAddresses>
你會(huì)發(fā)現(xiàn)WCF的服務(wù)啟動(dòng)不會(huì)有任何問題。然而,現(xiàn)在打開用戶賬戶控制,再次使用VisualStudio2008打開并運(yùn)行同樣的代碼,VisualStudio2008會(huì)抱怨:將其改回:
發(fā)現(xiàn)WCF服務(wù)又可以啟動(dòng)了。
- <addbaseAddressaddbaseAddress="http://localhost:8731/Design_Time_Addresses/MyWCFService/"/>
- baseAddresses>
#T#剛遇到這種情況時(shí)真得很奇怪,“8731“WCF端口和“Design_Time_Addresses”到底有何“神秘”之處,有這種怪異的特性?原來Visualstudio2008在安裝時(shí)注冊(cè)了一個(gè)針對(duì)命名空間的ACL(AccessControlList),從而使運(yùn)行Visualstudio的當(dāng)前用戶(他們屬于此ACL)不需要Administrator權(quán)限也可以開發(fā)和調(diào)試WCF服務(wù)。由此真相大白,如果你在開發(fā)WCF服務(wù)時(shí)需要指定不同于默認(rèn)值的WCF服務(wù)地址,請(qǐng)以“管理員”身份運(yùn)行VisualStudio2008?;蛘吒?jiǎn)單一些,關(guān)掉用戶帳戶控制,我一直覺得Vista的"用戶帳戶控制"功能實(shí)在煩人,有了它也不見得就安全了。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流