web.config 文件中的配置部分不能包含 CDATA 或文本元素错误

问题描述 投票:0回答:9

我在服务器上执行应用程序时收到此错误:“配置部分不能包含 CDATA 或文本元素(web.config 第 149 行)”。错误行如下:

<location path="admin">
   <system.web>
    <authorization>             
        <allow roles="Admin"/>
        <deny users="*"/>;
    </authorization>
   </system.web>
</location>

请帮助我解决这个错误。

asp.net web-config authorization
9个回答
41
投票

你前面有一个分号

<deny users="*"/>

这个分号是不允许的,这就是您收到该错误的原因。


34
投票

确保配置文件中没有杂散字符。它可以像放错位置的“-->”或多余的“。”或任何非常小的东西一样“无害”。


17
投票

通常当 Web 配置文件中存在无效语法时会出现此错误


3
投票

避免 web-config 标签中出现杂散字符和空格。 我做的一切都是正确的,但我的问题是我有空格导致了问题。


3
投票

仅当您的配置文件中错误地引入了一些错误代码或垃圾代码时,才会发生此错误,例如有时您错误地错过了删除分号或插入了配置文件不接受的错误关键字,您只需要正确读取文件并在删除垃圾代码后它将开始工作文件不显示编译时错误,但它将显示像这样的运行时错误。


1
投票

我在将整个连接设置从便笺复制到 Machine.config 文件时遇到了此问题。我尝试了 .config 文件,看看保存文件时是否有可用的“S”字符。 真正的问题正如我上面所说。 解决:: 我没有将连接设置从粘滞便笺复制到 .config 文件,而是将设置复制到“记事本”,然后复制到 .config,它成功了!!!


1
投票

即使我遇到了同样的问题,直到我纠正了一些语义错误

之前:- "(最后加双引号)

之后:-(最后的双引号被删除)

进行更改后,specflow 对我来说效果很好。


0
投票

我遇到了类似的错误,结果我必须用实际的制表符替换行开头的空格。不知道为什么,但这有效。


0
投票

您的字符串中可能有不寻常的字符,例如“ “您通常不会在 Visual Studio 或 NotePad++ 中看到它。在简单的文本编辑器(如基本 NotePad)中复制该内容,然后复制回您的文件。

这解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.