我看到错误“The';'字符,十六进制值0x3B,不能包含在名称中。“在我的ASP.NET Web App的日志文件中。记录的URL看起来像这样:
mypage.aspx?paramone=one+two&paramtwo=zero+1
所以我的第一个问题是什么类型的系统/浏览器编码原始查询字符串? (很少发生这种情况)
我尝试使用Page_Load()事件中的以下代码片段来解决此问题:
string rawUrl = Request.RawUrl;
if (rawUrl.Contains(amp))
{
rawUrl = rawUrl.Replace("&", "&");
Server.Transfer(rawUrl, false);
return;
}
然而,当它转回到此页面时,&
又返回到查询字符串中。所以我猜测.Transfer()函数对第一个参数进行编码。
有关解决此问题的建议?
答案 0 :(得分:1)
您的网络服务器应该能够记录HTTP请求中的“用户代理”字段,这样才能识别罪魁祸首。
不要修复它 - 对于URI参数有一套定义明确的法律语法,而这不是其中之一。
答案 1 :(得分:0)
当您尝试将Microsoft目录导出到XML时,无法导入生成的文件,并且您收到以下错误消息 “XML文件路径/文件名在行中包含错误。”“名称包含无效字符。”
如果使用Microsoft Visual Studio .NET验证XML目录,则会收到以下错误消息:
“''('字符,十六进制值0x28,无法开始名称。行#,位置#”
出现此问题的原因是Commerce Server导出未编码以下特殊字符:
The range 0x0021 – 0x002F includes ! “ # $ % & ‘ ( ) * + , - . /
The range 0x03A – 0x0040 includes : ; < = > ? @
The range 0x007B – 0x007E includes { | } ~
The range 0x005B – 0x005E [ \ ] ^**