ConfigurationManager.AppSettings 为空?

2024-02-11

我有一个 VS2008 ASP.NET Web 服务应用程序在 XP 计算机的本地 IIS 上运行。同一解决方案中的单独项目使用测试方法来调用 WS 调用并运行其流程。

当我向 WS App 添加 Web 引用时,VS2008 在 Properties 文件夹中创建了一个 Settings.settings 文件来存储 Web 引用的地址。此过程还在 Web.config 文件中创建了一个名为 applicationSettings 的新部分,用于存储 Settings.settings 中的值

当我的应用程序尝试通过 ConfigurationManager.AppSettings[key] 从 Web.config 文件的 appSettings 部分检索配置值时,所有值均为 null,并且 AppSettings.AllKeys.Length 始终为零。

我什至将 Web.config 文件恢复到添加 Web 引用之前的状态,并确保它与系统生成的新项目的 web.config 文件完全相同,并且工作正常。在比较恢复的 Web.config 和新的 Web.config 后,我在 appSettings 部分添加了一个简单的值,但 ConfigurationManager.AppSettings[key] 仍然没有成功。

这是恢复后的 Web.config,无法从中读取

    <?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
          <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
          <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
          <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>
  </configSections>

  <appSettings>
    <add key="testkey" value="testvalue"/>
  </appSettings>

  <connectionStrings/>

  <system.web>
      <!-- 
          Set compilation debug="true" to insert debugging 
          symbols into the compiled page. Because this 
          affects performance, set this value to true only 
          during development.
      -->
      <compilation debug="false">

        <assemblies>
          <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>

      </compilation>
      <!--
          The <authentication> section enables configuration 
          of the security authentication mode used by 
          ASP.NET to identify an incoming user. 
      -->
      <authentication mode="Windows" />
      <!--
          The <customErrors> section enables configuration 
          of what to do if/when an unhandled error occurs 
          during the execution of a request. Specifically, 
          it enables developers to configure html error pages 
          to be displayed in place of a error stack trace.

      <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
          <error statusCode="403" redirect="NoAccess.htm" />
          <error statusCode="404" redirect="FileNotFound.htm" />
      </customErrors>
      -->

    <pages>
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </controls>
    </pages>

    <httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>


  </system.web>

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
                type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <providerOption name="CompilerVersion" value="v3.5"/>
        <providerOption name="WarnAsError" value="false"/>
      </compiler>
    </compilers>
  </system.codedom>

  <!-- 
      The system.webServer section is required for running ASP.NET AJAX under Internet
      Information Services 7.0.  It is not necessary for previous version of IIS.
  -->
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <remove name="ScriptModule" />
      <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated"/>
      <remove name="ScriptHandlerFactory" />
      <remove name="ScriptHandlerFactoryAppServices" />
      <remove name="ScriptResource" />
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
           type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
           type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </handlers>
  </system.webServer>

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

有没有人经历过这个,或者知道如何解决这个问题?

TIA

-Matt


当您在 VS 项目中添加 *.Settings 文件时,其内容不会转到 app.config 文件。

VS 自动创建一个类(在你的例子中它被称为Settings)继承自应用程序设置库并在构建过程中自动嵌入到您的 dll/exe 中。

为了获取存储的设置,您只需在代码中创建 Settings 类的实例并从其公共属性中获取值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ConfigurationManager.AppSettings 为空? 的相关文章

随机推荐

  • 在 Android Studio 中使用 libpd

    所以我得到了 git repohttps github com libpd pd for android https github com libpd pd for android并在 Android Studio 中为我的 Amazing
  • kdb/q:如何将字符串操作函数应用于字符串向量以输出字符串向量?

    先谢谢您的帮助 我是 kdb q 的新手 有 Python 和 C 背景 只是一个简单的语法问题 我有一个包含字段及其相应值的字符串 pp str field 1 abc field 2 xyz field 3 kdb 我编写了一个原子 标
  • Android Adapter 多个getView

    我已经阅读了多次调用 getView 的问题和所有答案 但是 我没有找到解决我的问题的方法 我有一个列表 其中行有两种状态 已读或未读 好吧 我希望第一次看到的项目有不同的颜色 当我滚动列表时 它们将颜色更改为 已读状态 为了做到这一点 在
  • MongoDB - 为什么 _id 索引不会在重复条目上抛出错误?

    我对 NoSQL 数据库完全陌生 目前正在使用 MongoDB 我试图理解为什么默认 id索引不会抛出错误 当upserting a duplicate id文档 正如文档中所述 id默认是唯一索引 虽然这里没有显示独特的标志 gt db
  • Symfony 2.6 - 按名称渲染单个选择字段(单选框、复选框)

    如何在 Symfony 2 6 的 Twig 中渲染单个字段 单选框 复选框输入字段 假设我有一个简单的表格 class TransportType extends AbstractType public function buildFor
  • printf什么时候打印失败?

    C 中的 printf 函数并不总是在屏幕上打印输出 例如 如果您忘记将 n 放在字符串末尾 则您正在 printfing 有时您不会得到 o p printf 不打印时是否还有其他一些情况 我记得有人说过这样的条件有7个 你们可以帮忙吗
  • 从内连接创建 mysql 表

    我正在尝试从另外两个表之间的内部联接创建一个 mysql 表 我正在处理某人创建的数据库 其中包含以下表格 sitematrix sites sitematrix databases 它们通过另一个名为的表 我不知道为什么不使用外键 相关s
  • 自定义 jQuery 不适用于 Wordpress Ninja Forms 插件

    当我想添加影响表单的自定义 jQuery 代码时 我遇到了一些问题 例如 当有人单击一个输入或单选按钮时 另一个输入或元素将被隐藏或显示 我试图得到如下结果console log trigger 当点击或其他东西但开发中没有任何内容时 控制
  • LDAPSEARCH 转换为表格格式

    有没有办法执行 LDAP 搜索并将结果保存为表格格式 例如 csv 干杯 乔治 您可以使用优秀的铣床工具 mlr https miller readthedocs io en latest 最后一点 echo output sed s g
  • 从 C# 函数运行 git 命令

    当我的 C 代码检测到跟踪文件中的更改时 它如何运行 git 命令 我正在为此目的编写一个 VisualStudio C 控制台项目 我是 NET 环境的新手 目前正在致力于将自动化 GIT 提交集成到文件夹中 我需要自动提交对已知文件夹的
  • 在测试过程中如何将 Facebook 应用限制为少数人使用?

    我了解测试帐户 但在测试期间 我只想允许我的朋友访问 然后是朋友的朋友 最后只允许凯文 培根和他的朋友访问 那可能会很糟糕 不是吗 该应用程序将被列出 有办法阻止列出吗 我不认识的人可能会尝试它并收到 抱歉 这是开发中的消息 我想他们会很生
  • Lambda、本地类型和全局命名空间

    这个最小程序 template
  • 如何从 UISearchBarDisplayController 结果转至detailViewController

    因此 使用故事板 您可以创建从 UITableViewCell 从第一个 tableViewController 到DetailViewController 的 Segue 然而 并不太复杂 当将 UISearchBarDisplayCon
  • 在棕地应用程序中实施单元测试的首要任务是什么?

    你首先重构你的SQL吗 你的建筑 或者你的代码库 你会改变语言吗 你会抛弃一切并从头开始吗 不重构 我正在向大型遗留意大利面条代码库添加单元测试 我的方法是 当被要求解决问题时 我尝试围绕与我当前任务相关的代码库部分创建一个新的包装器 这个
  • JqG​​rid:显示列内 HTML 元素的文本

    我已经使用 gridComplete 来显示 HTML 按钮 但它显示 HTML 文本而不是按钮 并将编码的 HTML 作为标题 这看起来不太好 请帮助我删除或更改标题 工具提示 并显示按钮 输出 当我检查这个单元格时 我可以在 chrom
  • Javascript 事件循环说明

    我不断看到 Javascript 事件循环 即 浏览器 JS 运行时事件循环 的解释 这些解释对我来说似乎不太合理 我希望有人能够提供一些权威的澄清 我的基本假设是 JS 事件循环就像我们几十年来在 UI 框架中使用的事件循环一样 如下所示
  • 使用PDO打印两次MYSQL查询结果

    我是一名老师 我有一个名为 gabber 的 mysql 表 其中包含学生测验的分数 这些字段是 锻炼 真实姓名 分数 开始时间 和 结束时间 如果学生完成了多种类型的测验 那么这将显示为表中的另一行 但当然具有不同的练习值 我下面的代码几
  • Rally:按发布的计划状态拉动故事计数?

    我正在尝试从 API 中获取最新版本的故事计数 并按计划状态进行细分 目前有一份报告可以做到这一点 但我在 API 中没有看到任何公开的方法 有谁知道是否可以获得吗 您应该能够对每个计划状态进行查询 并从响应正文中获取 TotalResul
  • Spark Streaming:读取Kafka Stream并将其作为RDD提供以供进一步处理

    我目前有以下设置 应用程序将数据写入 Kafka gt SparkStreaming 读取存储的数据 始终从最早的条目读取 并转换为流 gt 应用程序需要此结果的 RDD 来训练 mllib 模型 我想基本上实现类似的目标https git
  • ConfigurationManager.AppSettings 为空?

    我有一个 VS2008 ASP NET Web 服务应用程序在 XP 计算机的本地 IIS 上运行 同一解决方案中的单独项目使用测试方法来调用 WS 调用并运行其流程 当我向 WS App 添加 Web 引用时 VS2008 在 Prope