私も似たようなケースがありました。Web サービスを呼び出すクラス ライブラリがあり、次にクラス ライブラリの .DLL を呼び出す .EXE がありました。使用されるのは.EXEの構成ファイルであり、.DLL構成のファイルではないと思います。
しかし、上で Richard が言ったように、名前空間を完全に修飾する必要がありました。少し痛いです。以下はまさに私が変更したものです。問題は、サービス参照を作成するときに生成される reference.cs と構成ファイルの 2 つの場所で変更する必要があったことです。したがって、Web サービスを変更して「参照の更新」を行うたびに、C# コードを再度変更する必要があります。
1) 実際には、次のように reference.cs の ConfigurationName を変更する必要があります。
から: [System.ServiceModel.ServiceContractAttribute(Namespace = "http://TFBIC.RCT.BizTalk.Orchestrations", ConfigurationName = " RCTWebService.WcfService_TFBIC_RCT_BizTalk_Orchestrations")]
に: [System.ServiceModel.ServiceContractAttribute(Namespace = "http://TFBIC.RCT.BizTalk.Orchestrations", ConfigurationName = "TFBIC.RCT.HIP.Components.RCTWebService.WcfService_TFBIC_RCT_BizTalk_Orchestrations")]
2) 次に、関連するすべての app.config (.dll および .exe 用) の「contract」値を次のように変更します。
から:
<エンドポイント アドレス = http://nxwtest08bt1.dev.txfb-ins.com/TFBIC.RCT.BizTalk.Orchestrations/WcfService_TFBIC_RCT_BizTalk_Orchestrations.svc
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ITwoWayAsync" contract="RCTWebService.WcfService_TFBIC_RCT_BizTalk_Orchestration" name="WSBindingHttpAsync ">
に:
<エンドポイント アドレス = http://nxwtest08bt1.dev.txfb-ins.com/TFBIC.RCT.BizTalk.Orchestrations/WcfService_TFBIC_RCT_BizTalk_Orchestrations.svc
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ITwoWayAsync" contract="TFBIC.RCT.HIP.Components. RCTWebService.WcfService_TFBIC_RCT_BizTalk_Orchestrations" name="WSHttpBinding_ITwoWayAsync">
明確にするために-完全な名前空間が何であるかをどうやって知ったのですか? プログラムの名前空間は TFBIC.RCT.HIP でした。その中に、C# コードには追加の名前空間ステートメントが 1 つあります。
namespace RCTHipComponents