我有一个使用asp.net webforms模板创建的Web应用程序。它使用Asp.net Identity进行登录。为了使身份使用我的数据库,我改变了默认连接字符串以指向我自己的数据库。
我没有对asp.net webforms应用程序的默认模板进行任何显着的更改。
我发布了自己的网站并将其添加到IIS网站。现在,我可以通过将http://myip写入浏览器来访问我的网站。但是过了一段时间,我的登录页面开始无法正常工作。当我使用正确的用户名和密码登录时,它应该将我重定向到我试图访问的页面,但它的行为就像我没有登录并再次带来登录页面并重置表单。
就像我正在重新加载登录页面而不是登录。
当我通过IIS重置我的应用程序时,我可以像往常一样登录。它工作正常。
有什么问题?
为什么我的登录页面有时会起作用,有时候不行?它是关于我的IIS设置?我没有对他们做过任何显着的改变。它们几乎是默认设置。
我的操作系统是Windows 8.1 Enterprise N
我使用Visual Studio 2013(.NET 4.5)
答案 0 :(得分:1)
如果您使用的是Owin + Asp.NET身份但不是很清楚(但我认为您是这样)请查看此link,这是SO中的另一个类似问题,它详细解释了这个问题,解决方法。
部分引用:
System.Web拥有自己的cookie信息主源,并且不是Set-Cookie标头。 Owin只知道Set-Cookie标头。解决方法是确保Owin设置的任何cookie也是
答案 1 :(得分:0)
我遇到了同样的问题,发现它发生在运行Crystal Report之后。 'Session [“解决方法”] = 0;'按照我的建议为我工作:ASP.NET_SessionId + OWIN Cookies do not send to browser
答案 2 :(得分:-1)
我现在有同样的问题。它有时有效,有些则没有。您是否发现了可能导致此问题的任何解决方案或错误?
更新: 我在服务器上发现了一个(希望)相关的事件日志,它导致我在Owin软件包上运行更新(工具> NuGet软件包管理器控制台) 我跑了"更新包装Microsoft.Owin"及其子集,并能够登录清理。然后我刚刚更新了Packages.config中的所有软件包,显然要小心并测试,特别是如果你不想更新jQuery软件包。
当Owin试图检查/设置登录cookie时,从几个资源导致成为Response.Flush或.End问题。
http://katanaproject.codeplex.com/discussions/540202 https://www.nuget.org/packages/Microsoft.Owin/3.0.1
事件ID 1309 ASP.NET 4.0.30319.0 异常消息:在发送HTTP标头后,服务器无法追加标头。
答案 3 :(得分:-1)
我确实遇到了这个问题,并花了很多时间来解决它。我偶然发现在转到登录页面之前,导航到上面有Session["LastPage"] = Request.UrlReferrer.OriginalString;
的页面似乎可以解决此问题。 (我的网站上的某些页面无需登录即可使用)。因此,我将这一行添加到了登录页面,它解决了我的问题。我猜这与Beaniecopter所提到的工作类型相同。