ASP.NET MVC / URL中的神秘字符

时间:2015-06-26 07:42:48

标签: c# asp.net-mvc

我在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>

1 个答案:

答案 0 :(得分:2)

<configuration>
  <system.web>
    <sessionState cookieless="true"
      regenerateExpiredSessionId="true" />
  </system.web>
</configuration>

我很确定,您的web.config包含了此内容。 这使得每个标签的会话。每个选项卡都有唯一的标识符,在此标识的帮助下,服务器将知道哪个选项卡正在请求。