C# 从文件设置数据库连接的替代方法

C# 从文件设置数据库连接的替代方法,c#,web-services,connection-string,C#,Web Services,Connection String,我有一个web服务,它调用两种不同的web方法 其中一种方法使用SQL服务器连接,另一种方法使用DB2 ODBC连接可以与DB2数据库和SQL server进行通信,但是,对于每种方法,SQL的设计都必须略有不同,因此可以选择切换连接 现在我有了一个解决方案,从存储在服务器上的文本文件中读取字符串值 因此,如果字符串是SQL,则使用SQL连接字符串,ODBC使用ODBC连接字符串 有没有一种更有效的方法可以做到这一点,而不必每次调用web方法时都读取文件,因为我担心在实时环境中,会有大量数据被发

我有一个web服务,它调用两种不同的web方法

其中一种方法使用
SQL
服务器连接,另一种方法使用
DB2

ODBC连接可以与DB2数据库和SQL server进行通信,但是,对于每种方法,SQL的设计都必须略有不同,因此可以选择切换连接

现在我有了一个解决方案,从存储在服务器上的文本文件中读取字符串值

因此,如果字符串是SQL,则使用SQL连接字符串,ODBC使用ODBC连接字符串

有没有一种更有效的方法可以做到这一点,而不必每次调用web方法时都读取文件,因为我担心在实时环境中,会有大量数据被发送。所以我关心的是使用这种方法的速度和性能

我如何实现这一点的示例-

String DBconSQL = "SQL-connection-string";
String DBconODBC = "ODBC-connection-string";       
string connection = System.IO.File.ReadAllText(@"filePath");


    [WebMethod]
    public string stringRETURN(string connection)
    {
        if(connection == "SQL")
        {
        string con = "DBconSQL";
        string sql = "SQL"

        }
        if(connection == "ODBC")
        {
            con = DBconODBC;
            sql = "ODBC SQL";

        }

              //Do stuff here
    }

为什么不在第一次读取文件后将每个文件的值存储在内存中,或者将它们存储在代码中呢

i、 e

您可以从任何地方读取和写入这些内容,只要服务器处于运行状态(即应用程序在应用程序域中运行),这些内容就会一直存在


您还应该(希望)意识到在代码或文本文档中存储纯文本凭据的安全问题,并且(如果这是用于生产的话)提供某种形式的加密/安全/减少用于访问数据库的帐户的用户权限;)

在第一次读取文件后,如何将其存储在内存中?如果文件发生更改,会发生什么情况?我已经考虑了这种方法的安全缺陷。根据文件的更改时间更改变量有点困难,但也不过分-因此,如果我像您的示例中那样将这些设置为全局变量,这将把字符串保存到内存中,并且不必每次都读取文件?另外,当文件的文本值更改时会发生什么情况?请参阅关于FileSystemWatcher的最后一条注释,是的,静态类上的静态变量基本上是全局的系统范围内存存储(静态类在系统启动时初始化,并在dll的生存期内保存在内存中)
static class Globals
{
    public static string DB2ConnStr = String.Empty;
    public static string MSSQLStr = String.Empty;
}