私としばらくお待ちください、画像全体をレイアウトしたいです。 COMオブジェクト(VB6マクロ)がアプリケーションメソッドを呼び出すときに、ウィンドウを開いて表示する必要があるWPFアプリケーション(.exe)があります。私は1つのマネージドコードプロジェクトを.exeソリューションCOMで可視化し、VB6マクロはこのマネージコードプロジェクト(COMスタブ)でメソッドを正常に呼び出します。WPFアプリケーションとWCFクライアント/サービスエンドポイント要素を見つけることができません
私のCOMスタブはメソッド呼び出しを受け取り、最初にコマンドライン引数で渡すWPF exeでProcess.Startを実行します。私のアプリケーションは期待どおりに起動します。私は今、VB6マクロから、私のCOMスタブを介して、連続した呼び出しでWPFのexeにデータを送信する必要があります。 WPF exeソリューションに「netNamedPipeBinding」サービスを生成するWCFプロジェクトを追加しました。 COMスタブにServiceReferenceを追加して、WPF exeと通信しました。私はWCFサービスをコンソールアプリケーションで個別にテストしています。私はテストケースと同じメタデータアドレスを使用してCOMスタブServiceReferenceを構築しました。
私のテストドライバはCOMスタブメソッドを呼び出し、WPFアプリケーションが起動します。次回COMスタブへの呼び出しでサービスクライアントのインスタンス化が試行され、恐ろしいエラーが表示されます。 「ServiceModelクライアント構成セクションで、名前が「内部」で、エンドポイント要素が「SelectedStudentReference.ISelectedStudent」と一致しませんでした。
私のapp.configの内容は、WCFサービスプロジェクトのWPF exeソリューションの一部です。
<system.serviceModel>
<bindings />
<client />
<services>
<service name="AwardManager.Service.SelectedStudentService">
<host>
<baseAddresses>
<!--<add baseAddress = "http://localhost:8080/SelectedStudent" />-->
<add baseAddress="net.pipe://localhost/SelectedStudent" />
</baseAddresses>
</host>
<endpoint
name="internal"
address="net.pipe://localhost/"
binding="netNamedPipeBinding"
contract="AwardManager.Service.ISelectedStudent"
/>
<endpoint
address="mex/pipes"
binding="mexNamedPipeBinding"
contract="IMetadataExchange"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="False"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
これをWPF app.configにコピーしてみましたが、これは成功しませんでした。このサービスは、コンソールアプリケーションのテストドライバで動作します。これがWCFでの私の最初の経験であるため、次のトラブルシューティングの段階で迷っています。私はanother Stackflow questionを見ましたが、それが私のケースに適用されているかどうかわかりませんでした。何か案は?