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 ???");

最后,当我自己不声明头文件时,我需要知道它在什么命名空间下,或者我如何声明它,这样我就知道要搜索什么。谢谢。

WCF:没有名称为''命名空间''在留言中

通常,您希望在实际获取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");