C# 有一个ASP.Net应用程序和一个exe,而我没有';我不想要两个配置文件
我有一个exe库项目。这个项目是作为我的web应用程序中的引用引入的,它在自己的配置中具有所有相同的配置元素。在进程内直接对exe项目中的类进行少量调用,但通过命令行进行大量(GB内存使用)调用 我将以下配置元素复制到AppName.config文件以及Web.config文件中:C# 有一个ASP.Net应用程序和一个exe,而我没有';我不想要两个配置文件,c#,deployment,configuration,C#,Deployment,Configuration,我有一个exe库项目。这个项目是作为我的web应用程序中的引用引入的,它在自己的配置中具有所有相同的配置元素。在进程内直接对exe项目中的类进行少量调用,但通过命令行进行大量(GB内存使用)调用 我将以下配置元素复制到AppName.config文件以及Web.config文件中: <configuration> <appSettings> ... </appSettings> <system.serviceModel> <b
<configuration>
<appSettings>
...
</appSettings>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding ... />
<readerQuotas ... />
<security>...</security>
</basicHttpBinding>
</bindings>
<client>
<endpoint ... />
</client>
</system.serviceModel>
...
...
appSettings相对简单,因为它可以委托给一个外部配置文件。服务模型绑定不可用,因为它不能被委派。我能想到的唯一两种方法是:
1) 通过在current、parent、parent(etc)目录中查找web.config,在命令行模式下为应用程序配置频道,并将其加载到XmlDocument中,然后获取属性并直接在频道属性上进行设置
2) 在web应用程序中调用exe之前,从父web.config中获取appSettings和system.serviceModel元素,如果web.config较新,则将它们写入AppName.config文件。但是,由于共享dll,我的exe位于apps Bin目录中,写入/Bin将强制重新启动我的web应用。。。。哎哟
我的许多频道属性都很重要,不能是默认值。有更好的方法吗?IIRC,您可以在这两个部分上使用
configSource
(-注意它在system.serviceModel
下面的级别上工作)。这将为您提供更多文件,但您应该能够在客户端和服务器之间共享一些数据。但是,可能没有必要或不希望将一些配置向下共享给客户端-就我个人而言,我很想保持原样。如果您使用Visual Studio,您可以从其他项目添加现有文件并使用“添加为链接”