我知道在这个论坛上有很多问题提出相同的问题陈述。但我想介绍一下我的特定场景,以获得与此相关的指导方针/建议。 我正在开发一个应该在Azure上部署的MVC应用程序(基本上它使用.net sdk和其他包来处理windows azure)。应用程序完美工作,但在空闲时间为50-60分钟(即无刷新)后,连接丢失。 在调试代码(通过Visual Studio 2015社区版)期间,我发现它将流重定向到Sign in()函数(我还没有开发该函数,所以我没有理解)。在这里它创建一个URL的标志(用azure AD进行认证)并将应用程序重定向到该URL。这是应用程序出错的地方。在浏览器(谷歌浏览器)控制台我发现它说明在MVC应用程序中启用CORS(将在Azure上部署)
MLHttpRequest无法加载https://login.windows.net/common/wsfed?wa=wsignin1.0&wtrealm=https%3a%2f%2fdhttps%253a%252f%252flocalhost%253a43778%252f&wct=2016-09-26T19%3a05%3a59Z。请求的资源上没有“Access-Control-Allow-Origin”标题。因此不允许访问原产地'https://localhost:43778'。
我尝试使用几乎所有的方法,即
- 使用的web.config条目
- 使用NuGet包Microsoft.AspNet.WebApi.Cors版本5.2.2和5.2,使在CORS应用.3,通过webapiconfig.cs和/或控制器,动作级别全局启用。
没有什么似乎是帮助,我无法找到与请求和响应中的CORS相关的标题。 启用CORS会出现什么问题。请指导。 任何帮助将不胜感激。 感谢
编辑: 其实应用的行为像这样在空闲时,一旦我们刷新页面,这一切都还好。我只是在调查为什么连接丢失,以及如何在这么长的空闲时间之后保持应用程序运行。如果CORS以外的任何事情都可能导致此问题,请指导并提出可能的解决方法。
如果网站部署在Azure上,为什么会显示“https:// localhost:43778”?您是否使用网络应用程序或网站URL更新Azure Active Directory应用程序? –
CORS规则在**接收**端指定。在这种情况下'login.windows.net /'。这意味着login.windows.net已指定您的应用程序不被允许。而不是相反。这不是你可以改变自己的事情。 – Nsevens
@Haitham网站实际上尚未部署,但我正在本地主机上进行调试,是的,我已经使用此URL更新了Azure ADD应用程序 –