可以让多个进程从同一个文本文件中读取吗?

迈克布鲁诺

我继承了一组 .NET 项目的开发职责,其中包括 Windows 服务、一个 ASP.NET 网站和通过任务管理器启动的标准可执行文件。

所有这些组件都连接到 MySQL 数据库。目前,加密的连接字符串位于单独的 app.config/web.config 文件中。我认为必须在多个地方更新连接字符串是一种痛苦,所以我想将连接字符串放在一个文本文件中,所有单独的组件都可以访问该文件。

在我全力推进之前,我想问一下我是否可能会引入一个错误,因为可能有多个进程试图同时访问这个文本文件。我已经编写了一个读取文本文件的通用方法,并且我小心地确保以“读取”模式打开文件:

public string AESDecryptFromFile(string path, string password, string IV)
    {
        if (!File.Exists(path))
            throw new Exception("File not found: " + path);

        string cryptogram;
        using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
        {
            using (StreamReader sr = new StreamReader(fs))
            {
                cryptogram = sr.ReadToEnd().Trim(new char[] { '\r', '\n', ' ' });
            }
        }
        return AESDecrypt(cryptogram, password, IV);
    }

如果我以这种方式实现它,我没有任何理由相信进程会锁定文件,但我想我会问。

提前致谢!

凯文·史密斯

默认情况下,使用(string path, FileMode mode, FileAccess access)of构造函数也FileStream将获得以下配置:

  • 文件共享 = 文件共享.读取
  • 缓冲区大小 = 4096
  • useAsync = false

因为您不希望该进程锁定文件,所以这对您来说是完美的,因为您需要只读(请参阅https://msdn.microsoft.com/en-us/library/system.io.fileshare( v=vs.110).aspx )

但是,如果您想显式,您可以使用以下构造函数:

FileStream s = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在同一个脚本中读取多个文本文件

Java多个程序在同一个文本文件上写入

在同一个文件上写一些东西之后如何在python中读取文本文件

读取多个文本文件,未读取该行中的最后一个

我可以将同一个Controller放入Angular的多个文件中吗?

在同一个文本文件上使用StreamReader和Writer

我可以在同一个 asyncio 循环中写入和读取进程吗?

你可以在 python 的文本文件中创建一个嵌套类吗?

同一个dyno可以运行多个进程吗?

来自同一个文本文件 Python 的两个单独的整数列表

在Jekyll中,我们可以将多个集合分组在同一个文件夹中吗?

所以我只是创建了一个文本文件,并使用 with 循环从一个已经存在的文件中复制了文本。如何在同一个程序中打开新创建的文件?

在文本文件中读取多行,然后在另一个文本文件中写入

从文本文件中读取行并为每行中的每个名称创建一个文本文件

从文本文件中读取特定列的数据并写入另一个文本文件tcl

R-从一个文本文件读取多个数据表

读取文本文件直到一个空格并存储多个值

我可以共享一个具有文本文件链接的Excel文件吗?

如何创建一个程序,可以从给定的任何文本文件读取?

读取一个简单的文本文件

我可以从多个线程中绘制同一个CGContextRef吗?

我们可以在同一个对象中实现多个 QtRO 接口吗?

将多个文本文件合并为一个文本文件?

将一个文本文件拆分为多个文本文件 nodejs

如何编写一个for循环以在Matlab中读取1000个文本文件?

在jar文件中包含一个文本文件并读取它

多个python脚本一个文本文件

一次从文本文件中读取一个字符

将多个文本文件中的特定列合并到一个文件中