<compilation debug="false" targetFramework="4.0">
当该行为红色时,我收到此错误:
Parser Error Message: Sections must only appear once per config file. See the help topic <location> for exceptions.
我以为我也在机器配置文件中重复一些东西,然后我去搜索配置属性并找到了:
<section name="compilation" type="System.Web.Configuration.CompilationSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=****" requirePermission="false"/>
我试图删除它并导致问题,所以我又把它放回去了。
导致该错误的原因是什么?
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.net>
<mailSettings>
<smtp from="example@example.com">
<network host="****" enableSsl="true" defaultCredentials="false" port="587" userName="****" password="****"/>
</smtp>
</mailSettings>
</system.net>
<connectionStrings>
<clear/>
<add name="SqlState" connectionString="Data Source=****;DataBase=****;Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="YourGuruDB" connectionString="Data Source=****;Initial Catalog=****;Integrated Security=True"/>
<add name="modelConnectionString" connectionString="Data Source=****;AttachDbFilename='****';Integrated Security=True;User Instance=True;Trusted_Connection=Yes;" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<sessionState mode="SQLServer" sqlConnectionString="SqlState" allowCustomSqlDatabase="true" cookieless="false" timeout="20"/>
<compilation debug="true"/>
<authentication mode="Forms">
<forms name=".MyCookie" loginUrl="~/Registration.aspx" protection="All" timeout="30" path="/">
<credentials passwordFormat="MD5">
<user name="****" password="****"/>
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
<roleManager enabled="true" defaultProvider="MyRoleProvider">
<providers>
<clear/>
<add name="MyRoleProvider" applicationName="/" connectionStringName="modelConnectionString" type="System.Web.Security.SqlRoleProvider"/>
</providers>
</roleManager>
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="modelConnectionString" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" enablePasswordReset="true" maxInvalidPasswordAttempts="1000" passwordAttemptWindow="4000" enablePasswordRetrieval="true" requiresUniqueEmail="false" passwordFormat="Encrypted" applicationName="/WebSite10"/>
</providers>
</membership>
<machineKey validationKey="****" decryptionKey="****" validation="SHA1" decryption="AES"/>
<compilation debug="false" targetFramework="4.0">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
</system.web>
</configuration>
答案 0 :(得分:5)
你的web.config中有两个编译标签:
<sessionState mode="SQLServer" sqlConnectionString="SqlState" allowCustomSqlDatabase="true" cookieless="false" timeout="20"/>
<compilation debug="true"/>
和您最初发布的那个。
答案 1 :(得分:0)
如果没有web.config的其余部分,有点难以看到发生了什么。这是你正在编辑的网站/网络应用程序root web.config吗?
你有多个“编译”部分吗?
无论如何,这只是猜测,因为我们需要更多信息,但似乎您的一个或多个网络配置文件格式不正确......
答案 2 :(得分:-1)
我认为您不想在machine.config中编译部分 - 每个网站/应用程序都需要能够在本地使用此部分,以便它可以引入所需的程序集。
我将它从machine.config中删除。