Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有一个ASP.Net应用程序和一个exe,而我没有';我不想要两个配置文件_C#_Deployment_Configuration - Fatal编程技术网

C# 有一个ASP.Net应用程序和一个exe,而我没有';我不想要两个配置文件

C# 有一个ASP.Net应用程序和一个exe,而我没有';我不想要两个配置文件,c#,deployment,configuration,C#,Deployment,Configuration,我有一个exe库项目。这个项目是作为我的web应用程序中的引用引入的,它在自己的配置中具有所有相同的配置元素。在进程内直接对exe项目中的类进行少量调用,但通过命令行进行大量(GB内存使用)调用 我将以下配置元素复制到AppName.config文件以及Web.config文件中: <configuration> <appSettings> ... </appSettings> <system.serviceModel> <b

我有一个exe库项目。这个项目是作为我的web应用程序中的引用引入的,它在自己的配置中具有所有相同的配置元素。在进程内直接对exe项目中的类进行少量调用,但通过命令行进行大量(GB内存使用)调用

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

<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,您可以从其他项目添加现有文件并使用“添加为链接”