程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> 協定需要會話,但是綁定“BasicHttpBinding”不支持它或者因配置不正確而無法支持它

協定需要會話,但是綁定“BasicHttpBinding”不支持它或者因配置不正確而無法支持它

編輯:C#基礎知識
對於無.SVC文件的配置只需要指定以.svc結尾的相對地址和服務實現的完整名稱即可。可問題恰恰出在這裡,之前需要在<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>


這種配置方式對於特定的協議明確的指定了終結點的binding,但是用無.svc配置方式的終結點是由AppFabric生成的不需要在配置文件中配置,對於綁定只提供了基於界面配置的方式並且沒有明確指定綁定的具體類型。像如上這個問題就是因為開發的WCF需要會話,而基於HTTP協議的默認綁定BasicHttpBinding不支持會話所致,那麼如何解決這個問題,只需要修改http協議的默認綁定即可。

解決方法:

在web.config配置文件中找到<system.serviceModel>段。
在<system.serviceModel></system.serviceModel>之間加上
代碼如下:

<protocolMapping>
<add scheme="http" binding="wsHttpBinding" bindingConfiguration="WsHttpSession"/>
</protocolMapping>

協議映射配置,這樣服務器在接收到http協議的請求時 會按照所設置的binding進行處理而不再是默認binding了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved