2011-07-19 11 views
0

Sharepoint 2010用に展開されたSharepoint WCFサービスをデバッグする必要があります。ただし、同じPhyicalマシンに展開されている別のSharepointサービスをデバッグする必要があります。同時にデバッグすると、Visual Studioデバッガで奇妙なことが起こります。たとえば、彼のデバッガは私が設定したブレークポイントでブレークするか、コードによって発生した例外を見ています。私たちはさまざまなソリューションでさまざまなサービスをデバッグしています。これまでに収集した情報から、この動作は、アプリケーションプールごとに1つのw3wpプロセスしかないため、Visual Studio Debuggerインスタンスが接続されるためです。 別のw3wp.exeを添付するために、別のアプリケーションプールでサービスを実行する必要があると考えました。同じマシン上で複数のSharepointサービスをデバッグする方法は?

IISマネージャーは、2つの異なるSharepointアプリケーションプール(Central Adminisitration用のプールを除く)とサイト用のサイトが2つ存在することを示しています。各。そこで、他のアプリケーションプールを使用してサービスを展開しようとしましたが、展開場所を他のサイトのURLに設定しました。ただし、サービスの仮想_vti_binディレクトリは、同じ物理ディレクトリ...\Web Server Extensions\14\ISAPI\にマップされます。 Visual Studioからのデプロイメントは機能しますが、ServiceReferenceを取得することはできません。 <url>/_vti_bin/MyService.svc/MEXを開こうとすると、URLに関連付けられたバインディングインスタンスが既に存在していることを示すエラーページが表示されます。だから、これはこれを行う方法ではないか、あるいは単にこの方法でサービスを「分離」することは不可能です。私は、IISマネージャーまたはSharePoint Central Administrationの設定で試行錯誤することに非常に躊躇しています。なぜなら、何かを犯すのを防ぐのに十分なことがわからないからです。

誰かが私にこれを解決する方法を教えてもらえますか?

答えて

1

Visual Studioで展開するときに指定するURLが誤解を招く可能性があります。サンドボックスソリューションがある場合は、この場所に展開されます。ファームソリューションがある場合は、集中的に展開され、URLを使用してリサイクルするアプリケーションプールを把握します。ソリューションにWebアプリケーション固有の設定(safecontrols)がある場合、これらはURLをホストするWebアプリケーションに適用されます。

_vti_binは、ファーム全体のすべてのサイトで使用できます。 _layoutsと同じです。サービスは複数のURL(サイトごとに1つ)を介して公開されるため、SharePointチームはこれを可能にするカスタムファクトリクラスを作成しました。ビルドされたSVCファイルの1つをチェックすると、特別なファクトリクラスを使用していることがわかります。すべてのサイトでサービスを公開するには、これをsvcファイルで使用します。

デバッグに関しては、複数の開発者が同じマシンを使用することは決してお勧めできません。本当にやりたければ、異なるアプリケーションプールを持つ2つのWebアプリケーションを使用することをお勧めします。そうすれば、各開発者はそれぞれのプロセスにアタッチすることができます。アプリケーションプールに異なるアカウントを使用すると、「プロセスの追加」ダイアログで正しいアカウントを簡単に見つけることができます。

+0

私は、同じマシンでのデバッグは最適ではないことを知っていますが、現時点ではSharepointをホストするように設定されたマシンは1台しかありません。私たちのソリューションは両方とも、農業ソリューションbtwです。私は、異なるアプリケーションプールでデバッグしていることと、デバッガが実際に別のw3wp.exeプロセスに接続していることを確認しました。サービスを再デプロイすると、正しいアプリケーションプールもリサイクルされますが、それでも問題は残ります。 – Hatch

関連する問題