控制台app.config 的 <add key="aspnet:MaxHttpCollectionKeys" value="10000" />无效

问题描述:

   在对大量的json序列化时 我们应该在web.config中加入<add key="aspnet:MaxHttpCollectionKeys" value="10000" /> 节点,否则会报错:Operation is not valid due to the current state of the object. 详见:http://blog.youkuaiyun.com/lxy1106/article/details/42392441 。但是如果程序是控制台程序,或者Windows Service,或者Winfrom程序时加入aspnet:MaxHttpCollectionKeys不起作用,不知为何?

请高手解答···


<think>嗯,我现在要理解用户提供的这段XML配置是什么,以及它在什么情况下使用。首先,这段代码看起来像是ASP.NET的配置文件中的一部分,可能是在Web.config文件里。用户提到的是<compilation>标签,里面设置了debug="true"和targetFramework="4.0",然后还有<assemblies>部分添加了一个System.Web.DataVisualization的引用。 首先,我需要回忆ASP.NET的配置结构。Web.config文件用于配置ASP.NET应用程序的各种设置,比如连接字符串、身份验证、编译选项等。<compilation>标签通常位于<system.web>节点下,控制应用程序的编译行为。debug属性设置为true,这可能意味着启用调试模式,生成调试符号,但可能会影响性能。targetFramework属性指定项目目标使用的.NET Framework版本,这里是4.0,所以应用程序会使用该版本的特性,并且需要对应的运行时环境。 接下来是<assemblies>部分,用户添加了一个assembly,System.Web.DataVisualization。这个程序集可能和图表控件有关,因为System.Web.DataVisualization包含了Chart控件,用于在Web应用中生成图表。版本是4.0.0.0,公钥令牌是31BF3856AD364E35,这应该是微软的标准公钥令牌,确保程序集的真实性。 需要确认debug属性设置为true的影响。在开发环境中,这会启用调试信息,方便开发人员排查错误,但在生产环境中应该关闭,因为会影响性能,并且可能暴露敏感信息。targetFramework="4.0"是否正确?如果应用程序实际使用的是更高版本的.NET Framework,可能需要调整。另外,添加程序集引用是否正确,是否有必要。例如,如果项目中使用的是较新的框架版本,可能需要确认该程序集是否仍然适用,或者是否需要不同的版本。 可能用户遇到的问题是在部署时缺少该程序集,或者编译时出现找不到相关命名空间的错误,所以需要在配置文件中添加引用。或者他们可能在使用Chart控件时遇到问题,需要确保程序集正确引用。此外,检查是否在项目中实际安装了对应的NuGet包或引用了正确的DLL文件,因为仅仅配置文件中添加可能不足,还需要实际的程序集存在。 总结来说,这段配置的作用是设置ASP.NET应用的编译选项,开启调试模式,指定目标框架为4.0,并添加对System.Web.DataVisualization程序集的引用,以支持图表功能。需要提醒用户注意debug模式在生产环境中的风险,以及确保目标框架和程序集版本与实际环境一致。</think>这段XML配置属于ASP.NET应用程序的`Web.config`文件中的编译设置,主要控制项目编译行为和依赖引用。以下是逐层解析: --- ### **一、配置结构定位** ```xml <compilation debug="true" targetFramework="4.0"> <assemblies> <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> </assemblies> </compilation> ``` - **父节点**:通常位于`<system.web>`节点下。 - **作用**:定义ASP.NET应用程序的编译规则和依赖程序集。 --- ### **二、关键属性解析** #### 1. `debug="true"` - **功能**:启用调试模式。 - **影响**: - ✅ **开发阶段**:生成调试符号(.pdb文件),支持断点调试、查看变量值。 - ❌ **生产环境风险**:降低性能(不优化代码),可能暴露敏感错误信息。 - **建议**:部署时设置为`debug="false"`。 #### 2. `targetFramework="4.0"` - **功能**:指定项目目标框架为`.NET Framework 4.0`。 - **要求**: - 服务器需安装.NET Framework 4.0或兼容版本。 - 代码需符合.NET 4.0语法和API限制。 --- ### **三、程序集引用解析** #### `<add assembly="System.Web.DataVisualization..."/>` - **作用**:显式引用`System.Web.DataVisualization.dll`程序集。 - **用途**: - 提供`Chart`控件功能(如生成折线图、柱状图)。 - 需搭配`<asp:Chart>`标签在页面中使用。 - **依赖检查**: - 确保服务器GAC(全局程序集缓存)或`Bin`目录中存在该DLL。 - 若未安装,需通过NuGet安装`Microsoft.AspNet.DataVisualization`包。 --- ### **四、典型应用场景** #### 场景示例:使用ASP.NET Chart控件 1. **页面声明**: ```html <asp:Chart ID="Chart1" runat="server"> <Series> <asp:Series Name="Series1"></asp:Series> </Series> <ChartAreas> <asp:ChartArea Name="ChartArea1"></asp:ChartArea> </ChartAreas> </asp:Chart> ``` 2. **后端代码**: ```csharp Chart1.Series["Series1"].Points.DataBindY(new[] { 10, 20, 30 }); ``` --- ### **五、常见问题排查** 1. **编译错误**:`The type 'System.Web.UI.DataVisualization.Charting.Chart' could not be found` - **原因**:缺少程序集引用。 - **解决**:检查配置中程序集名称是否拼写正确,确认DLL存在。 2. **运行时错误**:`Could not load file or assembly 'System.Web.DataVisualization'` - **原因**:服务器未安装该程序集。 - **解决**:通过NuGet安装或手动部署DLL到`Bin`目录。 --- ### **六、生产环境建议** 1. **关闭调试模式**: ```xml <compilation debug="false" targetFramework="4.0"> ``` 2. **验证程序集版本**: - 若升级到.NET 4.5+,检查`System.Web.DataVisualization`是否兼容。 --- **总结**:此配置用于ASP.NET 4.0项目的编译设置,开启调试并引用图表控件所需的程序集。需根据环境调整`debug`属性,并确保依赖正确部署。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值