我在ASP.NET MVC(版本5.2.3.0)中部署了一个网站,我遇到了一个奇怪的问题,有时会出现像URL一样的字符,例如: www.website.com/(X(1)S(3hfps41rchxt45wwrsn4o5bi))/RestOfRoute而不是www.website.com/RestOfRoute
它随机发生,神秘的字符串总是匹配(X(1)S(*))。
在stackoverflow上搜索后,我发现它可能与无会话cookie有关,但我的网站没有使用它。 以下是Web.config的摘录,可能有所帮助:
<authentication mode="Forms">
<forms loginUrl="<url>" timeout="2880" />
</authentication>
有人知道这个问题的根源是什么吗?
编辑1:
&#34;的System.Web&#34; Web.config的块
<system.web>
<customErrors mode="RemoteOnly" />
<compilation debug="false" targetFramework="4.5">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="<url>" timeout="2880" />
</authentication>
<pages>
<namespaces>
<add namespace="System.Web.Helpers"/>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Web.WebPages"/>
<add namespace="Telerik.Web.Mvc.UI"/>
</namespaces>
</pages>
<httpHandlers>
<add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false"/>
<add path="Telerik.Web.UI.DialogHandler.axd" verb="*" type="Telerik.Web.UI.DialogHandler" validate="false"/>
<add verb="GET,HEAD" path="asset.axd" validate="false" type="Telerik.Web.Mvc.WebAssetHttpHandler, Telerik.Web.Mvc"/>
</httpHandlers>
<httpRuntime maxRequestLength="2048576000" />
</system.web>
答案 0 :(得分:2)
<configuration>
<system.web>
<sessionState cookieless="true"
regenerateExpiredSessionId="true" />
</system.web>
</configuration>
我很确定,您的web.config
包含了此内容。
这使得每个标签的会话。每个选项卡都有唯一的标识符,在此标识的帮助下,服务器将知道哪个选项卡正在请求。