C# Microsoft Exchange传输代理

C# Microsoft Exchange传输代理,c#,connection-string,exchange-server,C#,Connection String,Exchange Server,我正在为Microsoft Exchange server构建传输代理。到目前为止,我实现的逻辑是有效的。现在,我想在DB中存储一些变量。我选择了存储库模式,当我尝试从App.Config文件提取连接字符串时,我收到一个NullReference异常: public class ConfigRepository : IConfigRepository, IDisposable { private string configString = System.Configuration.Con

我正在为Microsoft Exchange server构建传输代理。到目前为止,我实现的逻辑是有效的。现在,我想在DB中存储一些变量。我选择了存储库模式,当我尝试从App.Config文件提取连接字符串时,我收到一个NullReference异常:

public class ConfigRepository : IConfigRepository, IDisposable
{
    private string configString = System.Configuration.ConfigurationManager.ConnectionStrings["citadelEAPEntities"].ConnectionString;
    // private string configString = "..."; here I tried to write the string directly .
    private string configValProc = "[dbo].[GetConfigValue]";
    private SqlConnection connection;

    public ConfigRepository()
    {
        connection = new SqlConnection(configString);
    }

    // other logic and implementation of interfaces
}
在测试控制台应用程序中实现了相同的类,该类工作正常(在app.config文件中以相同的方式存储相同的连接字符串)。 我无法理解这一例外的原因。transporter代理类在“using”语句中实例化ConfigRepository类,当它通过config manager初始化连接字符串变量时到达构造函数时,将引发异常。显然,当我以硬编码的方式使用连接字符串时,一切都很好


在引用其他程序集(如System.Configuration)时,transporter agent程序集是否受到某种限制?真奇怪

传输代理在NetworkService的安全上下文下运行,因此它很可能没有足够的权限从引用程序集的位置加载程序集。如果您使用流程监视器,您应该能够跟踪流程等