WCFサービスの展開-アプリケーションファイルはどこに保管されますか?

StackOverflow https://stackoverflow.com/questions/608735

  •  03-07-2019
  •  | 
  •  

質問

BLを介してデータレイヤーを呼び出し、最終的にSQL Serverバックエンドを呼び出すWCFサービスがあります。私のサービスは、データベースからデータを取得するためのさまざまなメソッド/操作を公開しています。また、テスト用のホストと、Windowsサービスホストを構築しました。これを展開する方法です。

テストデプロイを行った昨日、サービスは正常に開始されましたが、データが適切にプルされているかどうかを確認する機会がありませんでした。ここに問題があります。私の展開テスト環境(MS Server 2003)は、自分の(ラップトップ)ローカルテスト環境とはまったく異なります。 Windowsサービスプロジェクトのbin \ debugの内容をサーバーにコピーし、InstallUtil.exeを使用したときにそこにある.exeを参照することで展開しました。しかし、DLのデータ接続は、ラップトップではなくサーバー上のデータベースに接続する必要があるため、明らかに異なる接続文字列を使用する必要があります。それでも、デプロイしたディレクトリに表示されるapp.configは、サービスホスト用のものだけです。 DLやBLなどの他のプロジェクトもDLLとして存在しますが、どちらのapp.configもありません。では、DLのapp.configをその環境に合った正しいものに置き換えるにはどうすればよいですか?これは単純な問題であると確信していますが、私はそれだけにこだわっていません。

関連する質問:後でTCPの代わりに-またはTCPに加えてHTTPホストを使用することに決めた場合、同じサービスを駆動する2番目のホストを実行できますか? IISでホストを展開し、app.configsにサービスノードを追加するだけですか?

役に立ちましたか?

解決

ホスティング環境のApp.config(この場合は管理対象Windowsサービス)には、すべてのモジュールの構成が含まれています。同様に、IISでホストする場合、Web.configにはすべての構成が含まれます。

他のヒント

プロジェクトをデプロイすると、取得されるapp.config / web.configのみが実行可能プロジェクト(website / console app / windows service / windows forms app / etc。プロジェクト)内にあります。 DLLプロジェクトのapp.configsはbinディレクトリにコピーされません。

DLLプロジェクトから構成セクションをコピーし、サービスプロジェクトapp.configに配置する必要があります。

2番目の質問では、同じServiceHostで同じサービスの異なるエンドポイントをホストできます。 Windowsのサービス/コンソールアプリでHTTPエンドポイントをホストできます。 IISの外部でHTTPをホストする場合、ユーザーがHTTPポートを開くことを許可する許可をユーザーに与える必要があります。 ( http://msdn.microsoft.com/en-us/library/を参照してください。 ms733768.aspx )。 HTTPの場合、IISでのホスティングは簡単になりますが、プレーンなServiceHostで機能します。

<system.serviceModel>
    <services>
        <service name="MyServiceTypes.MyService">
            <endpoint address="http://localhost:44444/MyService"
                      binding="basicHttpBinding"
                      contract="MyServiceTypes.IMyService" />

            <endpoint address="net.tcp://localhost:55555/MyService"
                      binding="netTcpBinding"
                      contract="MyServiceTypes.IMyService" />
        </service>
    </services>
</system.serviceModel>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top