ASP.NET web.config报‘Entity 'response_type'未定义’错误,求转义方法
解决web.config中URL参数的XML实体错误
问题出在XML的语法规则上:&是XML的特殊字符,不能直接在属性值里使用。XML解析器会把&后面的内容当作实体引用(比如&response_type会被误认为是名为response_type的预定义实体,但这个实体不存在),所以才会报"Entity 'response_type' not defined"这类错误。
正确的处理方式是把URL里的&转义为XML实体&,修改后的配置行如下:
<add key="foo" value="http://localhost?client_id=abc123&response_type=code&redirect_uri=google.com"/>
补充说明:
- @符号是C#里的逐字字符串标记,web.config是XML文件,不支持这个语法,所以用@无效。
- XML里需要转义的特殊字符还有
<(转成<)、>(转成>)、"(转成")、'(转成'),这里仅需处理&即可。
内容的提问来源于stack exchange,提问作者user815362
相关产品推荐
相关产品推荐

