協(xié)定需要會(huì)話,但是綁定“BasicHttpBinding”不支持它或者因配置不正確而無法支持它
更新時(shí)間:2012年12月29日 10:41:41 作者:
在IIS7及以上版本服務(wù)器中提供了基于WAS的無.SVC文件的WCF服務(wù)激活功能,能夠提供基于HTTP和非HTTP協(xié)議的訪問,通過添加Windows Server AppFabric可以更方便的管理WCF服務(wù)
對于無.SVC文件的配置只需要指定以.svc結(jié)尾的相對地址和服務(wù)實(shí)現(xiàn)的完整名稱即可。可問題恰恰出在這里,之前需要在<system.serviceModel>
<services>
<host>
<baseAddresses>
<add baseAddress="http://localhost:10045/TestService/TestService" />
<add baseAddress="net.tcp://localhost:10046/TestService/TestService" />
</baseAddresses>
</host>
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="WsHttpSession" contract="xxx.xxx.IConnectService" />
</services>
這種配置方式對于特定的協(xié)議明確的指定了終結(jié)點(diǎn)的binding,但是用無.svc配置方式的終結(jié)點(diǎn)是由AppFabric生成的不需要在配置文件中配置,對于綁定只提供了基于界面配置的方式并且沒有明確指定綁定的具體類型。像如上這個(gè)問題就是因?yàn)殚_發(fā)的WCF需要會(huì)話,而基于HTTP協(xié)議的默認(rèn)綁定BasicHttpBinding不支持會(huì)話所致,那么如何解決這個(gè)問題,只需要修改http協(xié)議的默認(rèn)綁定即可。
解決方法:
在web.config配置文件中找到<system.serviceModel>段。
在<system.serviceModel></system.serviceModel>之間加上
<protocolMapping>
<add scheme="http" binding="wsHttpBinding" bindingConfiguration="WsHttpSession"/>
</protocolMapping>
協(xié)議映射配置,這樣服務(wù)器在接收到http協(xié)議的請求時(shí) 會(huì)按照所設(shè)置的binding進(jìn)行處理而不再是默認(rèn)binding了。
復(fù)制代碼 代碼如下:
<services>
<host>
<baseAddresses>
<add baseAddress="http://localhost:10045/TestService/TestService" />
<add baseAddress="net.tcp://localhost:10046/TestService/TestService" />
</baseAddresses>
</host>
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="WsHttpSession" contract="xxx.xxx.IConnectService" />
</services>
這種配置方式對于特定的協(xié)議明確的指定了終結(jié)點(diǎn)的binding,但是用無.svc配置方式的終結(jié)點(diǎn)是由AppFabric生成的不需要在配置文件中配置,對于綁定只提供了基于界面配置的方式并且沒有明確指定綁定的具體類型。像如上這個(gè)問題就是因?yàn)殚_發(fā)的WCF需要會(huì)話,而基于HTTP協(xié)議的默認(rèn)綁定BasicHttpBinding不支持會(huì)話所致,那么如何解決這個(gè)問題,只需要修改http協(xié)議的默認(rèn)綁定即可。
解決方法:
在web.config配置文件中找到<system.serviceModel>段。
在<system.serviceModel></system.serviceModel>之間加上
復(fù)制代碼 代碼如下:
<protocolMapping>
<add scheme="http" binding="wsHttpBinding" bindingConfiguration="WsHttpSession"/>
</protocolMapping>
協(xié)議映射配置,這樣服務(wù)器在接收到http協(xié)議的請求時(shí) 會(huì)按照所設(shè)置的binding進(jìn)行處理而不再是默認(rèn)binding了。
相關(guān)文章
C# .net實(shí)現(xiàn)貨幣轉(zhuǎn)換示例
這篇文章主要介紹了C# .net實(shí)現(xiàn)貨幣轉(zhuǎn)換,其中包含了try catch、switch語句的運(yùn)用,對于C#初學(xué)者有一定的借鑒價(jià)值,需要的朋友可以參考下2014-08-08
c#實(shí)現(xiàn)字符串反序輸出字符串的實(shí)例
下面小編就為大家分享一篇c#實(shí)現(xiàn)字符串反序輸出字符串的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
C#把數(shù)組中的某個(gè)元素取出來放到第一個(gè)位置的實(shí)現(xiàn)方法
這篇文章主要介紹了C#把數(shù)組中的某個(gè)元素取出來放到第一個(gè)位置的實(shí)現(xiàn)方法,涉及C#針對數(shù)組的常見操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12

