WCF:没有名称为''命名空间''在留言中
本文关键字:留言 命名空间 WCF 有名称 | 更新日期: 2023-09-27 18:07:51
错误:消息中没有名称' '和命名空间' '的标题
我有一个WCF服务,需要检索一些数据,我想在标题中包含,但我得到关于名称空间的上述错误。
我可以检查整套头,并看到我的'SessionID'下的AllKeys部分(在VS),但不明白什么名称空间它是期望如果有。
在JS中,我像这样启动请求,没有显式的头:
xmlhttp.setRequestHeader("SessionID", $scope.Psession); xmlhttp.send(body);
,在c# WCF服务中,这一行是我想获得标题
的地方string session = OperationContext.Current.IncomingMessageHeaders.GetHeader<string>("SessionID", "??? WHAT GOES HERE ???");
最后,当我自己不声明头文件时,我需要知道它在什么命名空间下,或者我如何声明它,这样我就知道要搜索什么。谢谢。
通常,您希望在实际获取header之前测试它是否存在,如下所示:
private bool IsAuthorizedRequest()
{
var incomingMessageHeaders = OperationContext.Current.IncomingMessageHeaders;
if (incomingMessageHeaders.FindHeader("Authorization", GlobalConstants.WcfNamespace) < 0)
return false;
string providedAuthorizationKey = incomingMessageHeaders.GetHeader<string>("Authorization", GlobalConstants.WcfNamespace);
string actualAuthorizationKey = ConfigurationManager.AppSettings.Get("AuthorizationKey");
return providedAuthorizationKey == actualAuthorizationKey;
}
我仍然没有弄清楚我原来的问题,但这使我得到了我想要的结果。希望对大家有所帮助。
string SessionValue = WebOperationContext.Current.IncomingRequest.Headers.Get("SessionID");