[英]OperationContext.Current.SessionId getting null
當我調用服務GetSessionId()時,會話ID獲得空值。 請幫我解決這個問題。
public Response<string> GetSessionId()
{
Response<string> respn = new Response<string>();
respn.Succeeded = false;
try
{
_sessionId = OperationContext.Current.SessionId;
respn.ReturnData = _sessionId;
respn.Succeeded = true;
}
catch (Exception ex)
{
respn.Succeeded = false;
respn.ErrorMsg = ex.Message;
}
return respn;
}
在Web.Config文件中,如果在這種情況下將安全模式設置為“消息”和clientCredentialType =“ Windows”,它將獲得會話ID。但是我不能使用任何安全性。
<wsHttpBinding>
<binding name="SOAPService_EndpointBinding"
maxReceivedMessageSize="2147483647"
openTimeout="00:02:00"
closeTimeout="00:02:00"
sendTimeout="24:00:00"
receiveTimeout="24:00:00">
<security mode="None">
<message clientCredentialType="None"/>
</security>
</binding>
</wsHttpBinding>
您正在使用什么綁定? 會話受以下綁定支持
解決方法如下,
在合同界面中,將SessionMode屬性設置為Required
[ServiceContract(SessionMode = SessionMode.Required)]
在配置文件中將可靠會話啟用為true
<wsHttpBinding>
<binding name="SOAPService_EndpointBinding"
maxReceivedMessageSize="2147483647"
openTimeout="00:02:00"
closeTimeout="00:02:00"
sendTimeout="24:00:00"
receiveTimeout="24:00:00">
<security mode="None">
<message clientCredentialType="None"/>
</security>
<reliableSession enabled="true"/>
</binding>
</wsHttpBinding>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.