.net4.5的项目引用了一个.net2.0的dll,接口callback里面引用context.session为空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net4.5的项目引用了一个.net2.0的dll,接口callback里面引用context.session为空相关的知识,希望对你有一定的参考价值。

Trade41UserRegisterServiceCore.GetMemberNameByMemberId(Common.ConfigHelp.GetValue("Trade41") + "GetMemberNameByMemberId", MemberId, responseJson =>

if (responseJson.ReturnCode == (int)ReturnCode.Succeed)

Entity.UserInfo ses = new Entity.UserInfo();
ses.MemberId = context.Request.Params["mid"];
ses.MemberName = responseJson.ReturnData.ToString();
ses.AreaCode = areaId;
context.Session.Add("user",ses); //在这里context.session为空了
context.Response.Write("ok");

else

context.Response.Write("0");

);
百度查了查,发现这句话:操作要求 IIS 7.0 处于集成管线模式,并且要求 .NET Framework 至少为 3.0 版本。
按理来说,我只是引用dll来进行通信而已。
期待大牛给个解决方案

CurrentNotification = “context.CurrentNotification”引发了“System.PlatformNotSupportedException”类型的异常
“context.IsPostNotification”引发了“System.PlatformNotSupportedException”类型的异常
IsWebSocketRequest = “context.IsWebSocketRequest”引发了“System.PlatformNotSupportedException”类型的异常
WebSocketRequestedProtocols = “context.WebSocketRequestedProtocols”引发了“System.PlatformNotSupportedException”类型的异常
监视context发现有这几项异常

参考技术A Session为空,跟你下面说的PlatformNotSupportedException异常(这个是平台不支持,那几个是需要操作系统Server 2008以上才支持)没什么关系。

你应该检查context 是来自哪里是否有Session,比如静态页面,没有标记为 IRequireSessionState的页面是不会有Session的追问

context是ashx一般处理文件中的,已继承IRequireSessionState,问题是在调用这个接口的callback外部context.session可以正常访问和使用,当把这个dll换成.net4.5的框架的时候,是可以正常使用的,.net2.0却不行,你能帮我解释一下这其中的原因吗。

以上是关于.net4.5的项目引用了一个.net2.0的dll,接口callback里面引用context.session为空的主要内容,如果未能解决你的问题,请参考以下文章

如何在 .NET 2.0 中异步复制文件?

.net 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0

WCF 向后兼容性问题

.NET 4.5.1 跟踪所有取消任务?

C# C# 11 ( .Net 7.0)Visual Studio 2022

在面向 .NET 4 的项目中引用 .NET 2 程序集