Tag: app config

如何在App.Config中编写URI字符串

我正在制作Windows Service 。 Service必须每晚下载一些东西,因此我想将URI放在App.Config中以防我以后需要更改它。 我想在App.Config中编写一个URI。 什么使它无效,我应该如何处理? 我的错误: – Entity ‘login’ not defined – Expecting ‘;’ – Entity ‘password’ not defined – Application Configuration file “App.config” is invalid. An error occurred

从类库中访问App.Config设置通过unit testing项目调用

我有以下设置: ASP.net 3.5网站项目 带有业务逻辑的C#类库 用于unit testing的C#类库 业务逻辑库执行所有数据库访问。 它通过访问System.Configuration.ConfigurationManager.ConnectionStrings从Web站点的web.config文件获取连接字符串。 当网站调用库时,这可以正常工作,因为库会查找调用者的配置。 我希望能够通过unit testing类库测试我的业务逻辑。 我在测试类库的根目录中放了一个App.config文件。 根据我的阅读,当测试库调用属于业务逻辑库的数据访问过程时,应该访问和使用测试库的App.config文件中的连接设置。 但是,当我尝试运行unit testing时,我收到错误,表明测试库的App.config文件(和/或其内容)未成功访问。 我对配置属性的检索(来自业务逻辑库)如下所示: public SqlConnection MainConnection { get { string conn = “”; try { conn = System.Configuration.ConfigurationManager.ConnectionStrings[“connString”].ConnectionString; } catch { // might be calling from test project. Need to reference app settings conn = System.Configuration.ConfigurationManager.AppSettings[“connString”]; } return new SqlConnection(conn); } } […]

如何安全地配置数据库连接

相似但不一样: 如何安全存储数据库连接详细信息 安全地连接到应用程序中的数据库 大家好,我有一个连接到数据库服务器的C#WinForms应用程序。 数据库连接字符串(包括通用用户/传递)放在NHibernate配置文件中,该文件与exe文件位于同一目录中。 现在我遇到了这个问题:运行应用程序的用户不应该知道普通数据库用户的用户名/密码,因为我不希望他直接在数据库中搜索。 或者,我可以对连接字符串进行硬编码,这是不好的,因为管理员必须能够在移动数据库时更改它,或者如果他想在dev / test / prod环境之间切换。 很久以来我发现了三种可能性: 通常通过使文件仅对运行应用程序的用户可读来回答第一个引用的问题。 但在我的情况下这还不够(运行应用程序的用户是一个人。数据库用户/通行证是一般的,甚至不应该被人访问。) 第一个答案还建议在将连接数据写入文件之前加密连接数据 。 使用这种方法,管理员不再能够配置连接字符串,因为他无法手动加密。 第二个引用的问题为这种情况提供了一种方法,但它似乎非常复杂。 我向你提问: 这是一个非常普遍的问题,所以没有任何一般的“怎么做”的方式,不知何故是一种“设计模式”? .NET的配置基础架构是否有一些支持? (可选,可能超出范围)我可以轻松地将其与NHibernate配置机制相结合吗? 更新: 回答第一个答案:有几个原因我想直接连接到数据库而不是使用Web服务 : (N)Hibernate只能用于数据库,而不能用于web服务(对吗?) 我们计划提供离线function,即如果数据库或网络应该关闭,用户可以继续他的工作。 为了解决这个问题,我正在考虑拥有一个本地的进程内数据库,例如SQL Server Compact,并使用MS Sync框架在它再次启动时立即与服务器数据库同步。 您是否有任何进一步的想法考虑到这一点?

ConfigurationManager.AppSettings在unit testing项目中返回Null

我在app.config文件中有一个带有应用程序设置的C#unit testing项目。 我正在测试一个存在于不同项目中的类。 该类依赖于ConfigurationManager.AppSettings和ConfigurationManager.ConnectionStrings 。 被测试的类所在的项目没有app.config文件。 我原以为,因为该类正在unit testing项目的上下文中实例化,它将使用unit testing项目的app.config文件。 实际上,连接字符串似乎就是这种情况。 该类检索连接字符串没有任何问题。 但是,当类尝试检索任何应用程序设置时,配置管理器始终返回null 。 这里发生了什么? 编辑1 我想也许在测试项目中尝试加载一些设置以查看会发生什么是个好主意。 我试图在调用在外部项目中实例化类的代码之前立即加载unit testing中的设置。 同样的结果,没有。 我想我暂时可以从等式中排除其他项目。 这是我的配置文件的摘录: … … 以下是我尝试加载设置的方法: string test = System.Configuration.ConfigurationManager.AppSettings[“Bing_Key”];

如何在控制台应用程序中为ConnectionString定义DataDirectory以使用EntityFramework Code First Migrations

我尝试在App.config为数据库设置位置MyProject\App_Data\Cos.mdf : 在Program.cs我写道: static void Main(string[] args) { string relative = @”..\..\App_Data\Cos.mdf”; string absolute = Path.GetFullPath(relative); AppDomain.CurrentDomain.SetData(“DataDirectory”, absolute); Console.WriteLine(absolute); Console.ReadKey(); } 显示的路径是(我粘贴它表明我没有犯错): 但是当我输入包管理器控制台enable-migrations将AutomaticMigrations更改为true,然后键入update-database我收到错误: Cannot attach the file ‘C:\Users\s8359_000\Documents\Visual Studio 2013\Projects\Projekt5 — kopia\Projekt5\bin\Debug\Cos.mdf’ as database ‘Cos’. 为什么.NET尝试在Debug目录中创建我的数据库?! 我在StackOverflow上讨论了这个主题的15个主题,看起来每个人都只是重复了不起作用的答案。 在SRUTZKY回答后编辑是的,你是对的,有错误。 你回答后我尝试了更多的组合,不幸的是没有一个工作。 和主要的 static void Main(string[] args) { Console.WriteLine(“BEFORE:” + AppDomain.CurrentDomain.GetData(“DataDirectory”)); string relative = @”..\..\App_Data\Cos.mdf”; string absolute = […]

用于动态加载程序集的App配置

我正在尝试动态地将模块加载到我的应用程序中,但我想为每个模块指定单独的app.config文件。 假设我有以下主应用程序的app.config设置: 另一个用于使用Assembly.LoadFrom加载的库: 两个库都有一个实现相同接口的类,具有以下方法: public string Name { get { return ConfigurationManager.AppSettings[“House”]; } } 肯定从主类和加载的汇编类中调用Name输出Stark 。 有没有办法让主应用程序使用自己的app.config和每个加载的程序集使用他们的? 配置文件的名称在输出中是不同的,所以我认为这应该是可能的。

在app.config中为类库做绑定重定向会做什么吗?

我经常使用的VS解决方案包括一个可执行项目 (控制台应用程序,Web应用程序)和许多可执行文件引用的类库项目 。 在使用NuGet并安装软件包时,通常会为每个项目创建一个app.config文件,通常只包含合并重定向列表以合并引用程序集的版本。 有时候会有一些第三方库特定的内容(比如Entity Framework配置部分),但是现在让我们把它放在一边。 当我构建解决方案并使用主可执行项目的二进制文件时,我看到构建输出中的所有类库项目程序集以及相应的*.config文件( app.config文件在构建时被重命名为AssemblyName.config ) 。 启动主可执行文件时,类库程序集的配置文件是否有效? 或者只是可执行文件的app.config文件在这种情况下有效? 如果在某些类库项目上设置了一些绑定重定向,并在主可执行项目上设置了一些不同的绑定重定向 – 这些如何组合,哪些优先? 我试图在线研究这个,从我读过的内容来看,它看起来像非可执行程序集的app.config文件是无用的(关于绑定重定向)。 有人可以确认这一点或详细说明该主题吗? 如果是这样的话,如果它们只包含绑定重定向,那么在类库中创建NuGet创建的这些app.config文件实际上是不可取的吗? 我觉得NuGet不应该为类库项目创建那些绑定重定向,因为它只会增加对实际应用的设置的混淆。 我在这个主题上找到了这些现有的Stack Overflow问题,但是他们接受的答案实际上是矛盾的,即使它们被标记为彼此重复 。 为什么NuGet在NuGet包更新期间将app.config与assemblyBinding一起添加到LIBRARY项目? 是否需要bindingRedirect .config文件或应用程序中的所有程序集? 第一个问题的接受答案提到app.config文件实际上是在编译时使用的,这意味着它们可能有效。 像MSDN和MSBuild源代码这样的来源被引用作为它在编译期间使用的certificate。 不幸的是,我对MSBuild的熟练程度不足以理解它是如何被使用的,以及它是否真的是一个有效的参数。 任何人都可以描述一个示例场景来certificate带有绑定重定向的类库的app.config可以做什么吗?

app.config – 如何在运行时强制从文件加载?

我创建了一个命令行应用程序,并将其大量配置移动到标准设置文件中。 所有设置都声明为Scope = Application,因为在应用程序中没有任何特定于用户的逻辑。 我在整个代码中访问值 Properties.Settings.Default. 这很好用,因为它按计划自动运行。 更新配置文件中的值将反映在输出中。 一段时间后,我创建了一个基本的GUI(在同一名称空间中)直接启动命令行应用程序(通过单独的构造函数)。 我没有做过大量的.Net编程,但我基本上都在使用我的CLI应用程序,就像一个DLL(我不知道是否有适当的术语;在我的输出文件夹中,我只需要GUI。 exe,CLI.exe和CLI.exe.config,它的工作原理)。 但是,我注意到,以这种方式启动时,未加载CLI.exe.config文件; CLI应用程序仅使用其已编译的默认值。 我希望配置文件方法在这个实例中可以工作。 我尝试了以下方法来强制加载配置文件,但到目前为止已经绘制了一个空白: 1: ConfigurationManager.RefreshSection(“appSettings”) 2: ExeConfigurationFileMap configFile = new ExeConfigurationFileMap(); configFile.ExeConfigFilename = Path.Combine(Environment.CurrentDirectory, System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + “.exe.config”); ConfigurationManager.OpenMappedExeConfiguration(configFile, ConfigurationUserLevel.None).Save(ConfigurationSaveMod.Modified); ConfigurationManager.RefreshSection(“appSettings”); 3: Properties.Settings.Default.Reload(); 这些都不会产生错误,但我在配置文件中修改的Properties.Settings.Default.Value不会更新。 有没有办法在这里完成我需要的东西? 编辑:这是我的CLI.exe.config文件的示例,如果它有助于说明我在这里要完成的任务: https://cloud.mycompany.com/ /inventory.aspx#view/Invoice/ … 我还要提一下,我在上面的代码中也试过’applicationSettings’代替’appSettings’。

在类库的App.config中使用ConfigurationManager.GetSection

我正在编写一个类库,它的app.config中有设置,最终将被少量其他.NET应用程序调用。 为了从中获取设置,我正在使用ConfigurationManager.GetSection,例如: MyConfiguration process = (MyConfiguration)ConfigurationManager.GetSection(“MyGroup/processes”); 我发现调用应用程序必须在其自己的项目中具有相同的app.config才能使其工作,否则类库将抛出NullReferenceException 。 我只是想知道这是否是正常行为,或者是否有任何方法可以确保只有类库需要app.config可用? 谢谢 :)

App.config中的配置未正确拉出

我正在尝试提取我保存到app.config文件的URL,但它返回一个空白字符串。 有什么想法吗? string asdf = String.Format(“{0}”, ConfigurationManager.AppSettings[“MemberUrl”]); 和配置文件: