项目要求配置设置已经存在

时间:2011-09-26 15:36:22

标签: c# .net wcf visual-studio-2010 config

以下是我要调用的代码:

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”进行设置   在本地配置文件中。

有什么想法吗?

3 个答案:

答案 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文件。

因此,您将明确说明要加载的配置文件或更改为使用注册表。我可能会在安装程序中定义该密钥时使用后者。