有一个ASP.Net应用程序和一个exe,我不想要两个配置文件

时间:2010-11-16 21:50:02

标签: c# deployment configuration

我有exe库项目。这个项目在我的网络应用程序中作为参考引入,该应用程序具有所有相同的配置元素,并且具有自己的配置。 Light调用是在进程中直接调用exe项目中的类,但是通过命令行进行大量(内存使用)内存调用。

我将以下配置元素复制到AppName.config文件以及Web.config文件中:

<configuration>
<appSettings>
    ...
</appSettings>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding ... />
            <readerQuotas ... />
            <security>...</security>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint ... />
    </client>
</system.serviceModel>

appSettings相对容易,因为可以委托给外部配置文件。服务模型绑定不是,因为它不能被委派。我能想到的唯一两种方式是:

1)通过在当前,父,父(等)目录中查找web.config并将其加载到XmlDocument中,并在通道上设置属性,在命令行模式下为应用程序配置通道属性直接。

2)在Web应用程序中调用exe之前,从父Web.config中获取appSettings和system.serviceModel元素,如果Web.config更新,则将它们写入AppName.config文件。但是,由于共享dll,我的exe在应用程序Bin目录中,写入/ Bin将强制重新启动我的Web应用程序.... ouch。

我的许多频道属性很重要,不能是默认属性。还有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

如果您使用Visual Studio,则可以从其他项目添加现有文件,并使用“添加为链接”。

答案 1 :(得分:0)

IIRC,您可以在这两个部分here上使用configSource - 请注意,它适用于下面的级别 system.serviceModel)。这为您提供了更多文件,但您应该能够在客户端和服务器之间共享一些数据。但是,将某些配置分享到客户端可能不是必需理想 - 个人我很想离开它原样。