C# Microsoft Exchange传输代理
我正在为Microsoft Exchange server构建传输代理。到目前为止,我实现的逻辑是有效的。现在,我想在DB中存储一些变量。我选择了存储库模式,当我尝试从App.Config文件提取连接字符串时,我收到一个NullReference异常: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
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的安全上下文下运行,因此它很可能没有足够的权限从引用程序集的位置加载程序集。如果您使用流程监视器,您应该能够跟踪流程等