2011-07-29 16 views
4

SOAアーキテクチャで実行します。私は、別のソリューションのWinFormsアプリケーションからの呼び出しにデバッグしようとしているサービスを持っています。WCFサービスへのデバッグ

このwinformsアプリケーションでは、app.configでlocalhostのサービスを正しく参照しています。これで、WCFサービスのインスタンスを開始して、ブレークポイントを設定してステップ実行できます。

サービスに入ると、プロジェクトを右クリックし、プロパティに移動して、[アクションの開始]の下でサービスbin/debug /ディレクトリの.exeファイルを選択します。それから、F5を保存、コンパイル、ヒットしてインスタンスを開始します。私はこのエラーを取得する:私は何を

enter image description here

をやるべき?

+0

このサービスはどのようにホスティングしていますか?IISまたはWindowsサービスの場合 – Jeff

+0

これはWindowsサービスでIISではなく – slandau

+0

あなたはそれに接続する必要があります。デバッグ - >プロセスにアタッチします – ppiotrowicz

答えて

6

プロセス内でサービスをホストし、そこからサービスをデバッグする必要があります。これは、サービスをホストするためのコンソールアプリケーションを作成するか、WindowsサービスをホストするWindowsサービスを作成するか、Windowsフォームアプリケーションを作成するか、IISでホストするなどの単純な操作です。

そうのようなコンソールアプリでホストすることができます:

static void Main(string[] args) 
{ 
    using (ServiceHost host = new ServiceHost(typeof(YourNamespace.YourServiceInterface))) 
    { 
    host.AddServiceEndpoint(typeof(
YourNamespace.YourServiceInterface), new NetTcpBinding(), "net.tcp://localhost:9000/YourService"); 
    host.Open(); 

    Console.WriteLine("Press <Enter> to terminate the Host 
application."); 
    Console.WriteLine(); 
    Console.ReadLine(); 
    } 
} 

this articleは、Windowsサービスでホストする方法を示しています。サービスの開始時にデバッガをアタッチできるように、私はOnStart方法の最初の行として

Debugger.Launch(); 

を追加することをお勧めします。これはスタートアップの問題をデバッグするのに役立ちます。それ以外の場合は、[デバッグ]メニューから[AttachToProcess]を選択し、実行中のWindowsサービスにアタッチすることができます。あなたはDebugger.Launch();方法

1

ローカルに構築しているサービスをWindowsサービスとしてインストールしてから、そのサービスに接続する必要があります。

1

を使用するようにusing System.Diagnosticsを追加する必要が

は、IISまたは自己ホスト型の下で実行されているサービスですか?どちらの方法でも、サービスが実行されている場合は、デバッグ - >プロセスのアタッチに移動して、サービスにアタッチできます。

IISで実行している場合は、w3wp.exe(IIS 7)プロセスを探す必要があります。このプロセスに接続するには、VSを管理者として実行する必要があります。古いバージョンのIISを実行している場合、このプロセスはaspnet_XXXのように呼び出されます。

あなたが接続されたら、ブレークポイントを入れて必要に応じてデバッグすることができます。

+0

自己ホスティング – slandau

0

クラスライブラリプロジェクトを実行/デバッグしようとするとエラーが発生するので、サービスプロジェクトがそのようなものではないことを確認してください。

あなたはそれを簡単にしたい(そしてデザインinfraestructureの問題はありません)その後、VSから/デバッグを実行してプロジェクトのようなウェブサイトでサービスをホストするWCFサービスアプリケーションプロジェクト作成する場合:https://dl-web.dropbox.com/get/Photos/web/wcfserviceapp.png?w=44e8c6ed

これをあなたはそのソリューションでサービスを実行してから、そのソリューションからwinformsアプリケーションを実行することができます。次に、「Debug/Attach to Process ...」メニューに移動します。あなたが持っていないプロジェクトのどのような種類のより明確な考えを持っている精巧喜ばれていない場合、どのようにあなたのソリューションおよびその他の便利な情報であり、私はこれが役に立てば幸いhttps://dl-web.dropbox.com/get/Photos/web/debugattachtoprocess.png?w=8c917c28

:「サービスのURLとポートを探してください。