最近、WCF サービス (dll) とサービス ホスト (exe) を作成しました。サービスを WcfTestClient に正常に追加できたので、WCF サービスが正しく機能していることはわかっています。
ただし、サービス ホスト (exe) から WCF を使用する場合、問題が発生しているようです。WCF (dll) への参照をサービス ホスト (exe) に追加し、必要なコンポーネントを exe に作成できます。サービス インストーラー、サービス ホスト、app.config などをコンパイルし、最後に InstallUtil を使用して exe をインストールします。しかし、Microsoft 管理コンソールでサービスを開始しようとすると、サービスが開始された直後に停止します。
そのため、この問題の正確な原因を調査し始め、イベント ビューアーのアプリケーション ログからこのエラーが発生しました。
説明:
サービスを開始できません。System.InvalidOperationException: サービス 'Service' にはアプリケーション (非インフラストラクチャ) エンドポイントがありません。これは、アプリケーションの構成ファイルが見つからなかったか、サービス名に一致するサービス要素が構成ファイルに見つからなかったか、サービス要素にエンドポイントが定義されていなかったためである可能性があります。
このエラーは、実際にはOnStart
;で生成されます。この呼び出しを実行すると、私のexeのServiceHost.Open()
。他の個人がこの問題に遭遇した投稿を数多く見てきましたが、すべてではないにしてもほとんどがサービス名または契約を主張しています。名前空間とクラス名が指定されていません。構成ファイルでこれらのエントリの両方を確認しました。exeとdllの両方で、完全に一致します。オフィスの他の人に後ろを再確認してもらい、ある時点で目が見えなくなっていないことを確認しましたが、もちろん、すべてが正しく指定されているように見えるという同じ結論に達しました。この時点で何が起こっているのか、私は本当に途方に暮れています。誰かがこの問題について私を助けてくれますか?
これが発生する可能性のある別の理由として考えられるのは、app.config が読み取られないことです。少なくとも、私が読むべきだと思うものではありません。これが問題でしょうか?もしそうなら、どうすればこの問題に対処できますか。繰り返しますが、どんな助けでもいただければ幸いです。