我正在尝试将配置文件交换进我的web api以与不同的WCF Web服务进行交互。我在以下链接中找到了在运行时更改我的webconfig文件的解决方案。
当从我的新配置文件中替换命令行应用程序调用但是当我从我的API调用配置文件转换器时,这很有效我得到以下错误。
“无法在ServiceModel客户端配置部分找到引用合同'OldDominionWebServices.RateDelegate'的默认端点元素。这可能是因为找不到您的应用程序的配置文件,或者因为找不到与此合同匹配的端点元素客户元素。“
这是我尝试引用的端点
<endpoint address="https://www.odfl.com:443/wsRate_v4/RateService" binding="basicHttpBinding" bindingConfiguration="RatePortBinding" contract="OldDominionWebServices.RateDelegate" name="OldDominionWebServices" />
我知道错误说的是什么,但我不确定为什么会在交换配置文件的web api中抛出它,但在使用执行相同操作的控制台应用程序时不会抛出。对于命令行应用程序,使用此Web服务的程序集作为解决方案的一部分被引用,其中与api一样,程序集通过反射加载。我已经看到一些建议,我需要在端点的合同中使用完全限定的域名,但这仍然会导致相同的错误。
我希望这是我忽略的一些简单的事情,提前谢谢!
答案 0 :(得分:1)
好问题!
简答:
您无法交换配置,因为Web应用程序使用AppDomain启动时初始化时使用的配置文件层次结构,因此需要重新启动AppDomain,并且所有内存中的更改都将丢失(这就是&#34; Config Swapper Class&#34;程序集的工作方式 - 在内存中执行所有操作)。
的详细说明:强>
我做了一些挖掘,这是我发现的: