以下是我要调用的代码:
try
{
using (var client = new WCFServiceChannelFactory<IFxCurveService>())
{
guid = client.Call(svc => svc.ReserveSnapshot(fxCurveKey));
DiscountFactorNew[] dfs = client.Call(svc => svc.GetDiscountFactors(guid, dates, from));
return (double)dfs[0].Value;
}
}
catch
{
throw new Exception();
}
现在它无法实例化WCFServiceFactory
,因为它无法找到我们需要的.config键之一,但是,它位于app.config中。
<appSettings>
<add key="ConfigurationServiceAddress" value="http://ksintapp:91/configurationservice.svc/mex" />
</appSettings>
此文件和调用它的文件位于同一目录中。它们是项目中唯一的两个文件,也是解决方案中唯一的项目。
这是错误:
因应用程序而无法初始化配置存储库 无法找到使用键“ConfigurationServiceAddress”进行设置 在本地配置文件中。
有什么想法吗?
答案 0 :(得分:1)
如果这是一个可执行应用程序(Console,WinForms,WPF),请确保配置文件名为AppName.exe.config
,并且与AppName.exe
位于AppName
的同一目录中项目名称。如果是Web应用程序,请确保web.config
。
每次在Visual Studio中将App.config
文件添加到可执行类型的项目中时,通过将其重命名为{{1},将其复制到输出目录(bin / Debug或bin / Release)所以在运行时应用程序能够解决它。
答案 1 :(得分:0)
通过将服务创建更改为:
来解决这个问题using (var client = new WCFServiceChannelFactory<IFxCurveService>(new Uri("http://ksqcoreapp64int:5025/")))
但现在我遇到了不同的问题,但至少我不需要配置文件。
答案 2 :(得分:0)
配置文件必须由托管代码的应用程序加载。在您的评论中,您声明这是由excel加载的程序集。您将无法创建具有任何含义的excel.exe.config文件。
因此,您将明确说明要加载的配置文件或更改为使用注册表。我可能会在安装程序中定义该密钥时使用后者。