"另一个进程使用的文件"修改app.config

时间:2017-06-28 23:25:49

标签: c# visual-studio app-config

我正在编写一个简单的报表应用程序,它从外部服务器上的SQL数据库中提取数据,并根据所述数据发送HTML电子邮件。

项目在99%的时间内完美地构建和执行,除了在我修改app.config文件之后。修改app.config文件后,第一次构建和运行(在Visual Studio 2012 Pro中)会产生以下错误:

"操作无法完成。该进程无法访问该文件,因为它正由另一个进程使用。"

构建成功,但在构建后立即生成此错误。

我找到了其他几个有类似问题的用户,解决方案各不相同。由于同样的原因,没有相同的错误。许多人将错误归因于VS调试器问题。

是否有其他人遇到同样的问题,或者有人知道可能导致此问题的原因吗?请注意,我在Debug和Release中都得到了相同的错误。即使连接字符串未加密,也会生成相同的错误。

我已经在下面添加了app.config文件,以及访问配置信息的所有代码。

配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
  <appSettings>
    <add key="minimum_days" value="40"/>
    <add key="maximum_days" value="70"/>
  </appSettings>
  <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
    <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
      xmlns="http://www.w3.org/2001/04/xmlenc#">
      <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
          <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
          <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
            <KeyName>Rsa Key</KeyName>
          </KeyInfo>
          <CipherData>          
              <CipherValue>......ciphertext...</CipherValue>
          </CipherData>
        </EncryptedKey>
      </KeyInfo>
      <CipherData>
          <CipherValue>...ciphertext...</CipherValue>
      </CipherData>
    </EncryptedData>
  </connectionStrings>
</configuration>

访问代码:

private int min_threshold = Convert.ToInt32(ConfigurationManager.AppSettings.Get("minimum_days"));
private int max_threshold = Convert.ToInt32(ConfigurationManager.AppSettings.Get("maximum_days"));
private string connection_string = ConfigurationManager.ConnectionStrings["str1"].ConnectionString;

0 个答案:

没有答案