2010-06-29 253 views
1

有时候,我为ASP.NET上写入的不同网站收到400错误请求错误。ASP.NET和400错误请求错误

我所知道的唯一的解决办法是清理饼干该网站。似乎问题的原因是属于Google Analytics的_utmz和_utma Cookie。这个问题发生在Mozilla FireFox的常见情况下,有时在Ghrome和Safari上,而从未在IE中。这个错误是偶然发生的。

我发现:

从斯特凡在ASP.Net团队: http://forums.asp.net/p/1431148/3221542.aspx

在像结肠 字符ASP.NET的url 包含字符当前版本将被拒绝作为 潜在的安全威胁。 的历史原因是,底层NTFS文件系统的 支持 备用资源流,可以用 “yourfile.txt:hiddendata.txt”等名称访问 。 阻断从URL中 冒号防止不良的意外与 备用资源流工作编写的应用程序 。

还有一个在当前 版本的ASP.NET一个限制,即传入的URL 需要映射到NTFS文件系统 用于确定被管理的 配置数据的目的。

在ASP.NET 4这些限制可以是 任选地除去。但是,这些 更改都在Beta 2版本 ASP.NET 4 - 它们不在Beta 1中。我们 试用了此前论坛发布的 之前列出的Url,并确认 与我们的内部版本为ASP.NET 4 你可以使用这种风格的Url和 处理它没有任何400错误。

是否存在ASP.NET运行时,FireFox或Google Analytics代码的Cookie管理流程问题?你知道什么样的问题解决方案?

+0

也许是所有的饼干都太大,不仅是_utmz和_utma。检查你的所有饼干的完整大小,并尽量保持他们每个人都小。 – Aristos 2010-06-29 10:30:44

回答

1

问题出在firefox在cookie中处理特殊字符的方式。它与asp.net没有任何关系,无论你使用哪种语言,都会产生错误。

这个问题似乎与谷歌Analytics(分析)活动人士最经常发生。您应该尽量将这些值保留为alpha字符。

我曾亲自不得不修复人们使用撇号,并在其查询字符串的MDASH问题。因此,我告诉人们只要避免使用连字符和撇号。如果你不是那个包括他们的人,你不能确定他们没有复制浏览器无法处理的特殊字符。

This forum建议您清理400页上的坏cookies,以便他们可以正确访问网站。

已经有another question与计算器同样的问题。

在设置广告系列来源等信息之前,您需要确保您没有包含任何特殊字符。如果未经过积极格式化,通过CMS新闻快递等动态创建的来源可能包含错误字符。我们遇到了将MSOffice字符粘贴到标题和链接中的问题,这些标题和链接会破坏Cookie并停止提供页面。

除了确保您没有向GA发送错误的数据并导致Cookie被损坏之外,没有其他解决方案。