C#ASP.NET TempData在工作,但现在不在3台计算机中的2台上

时间:2018-10-14 01:20:22

标签: c# asp.net iis-express tempdata

我正在开发VS Community 2017中开发的.net Core MVVC项目,并使用IIS Express 10,但我遇到的问题是TempData无法在开发的三台计算机中的两台上运行。一方面,它确实对所有三个方面都起作用。

我在重定向过程中使用TempData来存储信息,然后将TempData传输到ViewData以在“视图”页面上显示。我遇到了一些问题(我不记得现在是什么),并且正在从同事那里获得帮助,在他进行故障排除期间,出现了一个对话框,说了一些关于SSL的信息,我不记得他单击了什么,但是从那时起TempData停止工作。我认为他所做的一件事情与我所做的不同,是在“调试”区域的顶部,他单击了IIS Express下拉菜单,而是选择了“项目名称”选项。重定向后,TempData现在显示为 null 。当我在家用计算机上打开项目时,TempData可以正常工作。我有一台第三台计算机,在上面进行了一些开发,它曾经在这台计算机上工作,直到SSL盒也弹出来并且停止工作。我猜想它正在重定向到我想要的页面,但是在此过程中某个地方进站了,数据丢失了。

我尝试卸载并重新安装VS和IIS Express,而没有进行任何更改。我也尝试删除解决方案中的.vs文件夹,没有任何更改。我尝试在命令提示符下使用IIS Express命令清除网站。我还尝试了Chrome(以前可以工作的地方)和Internet Explorer中的应用,都没有进行任何更改。我已经尝试过在没有调试的情况下进行调试运行。

因此,TempData不再可在两台计算机上使用(如果需要的话,请同时使用Windows 10),而我的家用计算机(Windows 7)也可以使用。有人有想法么?

2 个答案:

答案 0 :(得分:2)

首先仔细查看您的问题

  

”一位同事,在他进行故障排除时弹出一个盒子,说   关于SSL的一些信息,我不记得他点击了什么。”

我想是您的同事在开发环境上启用了ssl,运行项目后,您必须信任本地IIS证书。

我认为您必须配置cookie以使用SSL,例如<httpCookies requireSSL="true" />,否则您可以禁用SSL进行开发,一切都会好起来的。

确保您可以检查家用计算机中的URL是否具有HTTP,在其他两台计算机中,URL以HTTPS开头。

另一方面,我建议您比较一下web.config结构。

答案 1 :(得分:0)

我终于在https://github.com/aspnet/Mvc/issues/8233

找到了答案

为解决此问题,我修改了Startup.cs file,以便将app.UseCookiePolicy();放在app.UseMvc();之后。我不知道为什么它只影响我的一台计算机,却能解决问题。

相关问题