2010-11-22 8 views
0

WCF Webサービスプロジェクト、たとえばFooService.svcエンドポイントを持つFooService.vbprojがあります。その実装は、IFooServiceサービスコントラクトを実装するFoo.vbクラスとその他のファイルを含む別のプロジェクトFoo.vbprojにあります。 FooServiceにはFooへのプロジェクト参照があります。 FooServiceはIISでローカルにホストされます。依存するプロジェクトビルドによってWCFサービスが中断される

FooServiceをビルドするとFooプロジェクト、FooServiceプロジェクトがコンパイルされ、はちょうどうまく動作します;ブラウザのhttp://localhost/Foo/FooService.svcが私にエンドポイント情報ページを与えます。しかし、その後、私はちょうどはFooだけでを構築場合、私は、私は方法が見つからない」と、死の黄色の画面を取得し、ブラウザでhttp://localhost/Foo/FooService.svcを参照してください。 『Foo.Bar Foo.IFooService.GetFizz(可能System.Guid』)もっと以下。

詳細はどこにそのサービスが「最初に保つべきではないでしょうか?

から解決する方法上の任意のアイデアを来ない。それはFooServiceのbinフォルダにFoo.dllの古いバージョンをコピーして判明します"新しいFoo.dllにより、エンドポイントは引き続き動作しますか?

フルスタックトレース:

[MissingMethodException: Method not found: 'Foo.Bar Foo.IFooService.GetFizz(System. 
     System.Reflection.Assembly._GetType(String name, Boolean throwOnError, Boolean ignoreCase) +0 
     System.Reflection.Assembly.GetType(String name, Boolean throwOnError) +36 
     System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +174 
     MyCo.Infrastructure.MultipleBindingHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +994 
     System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +11666348 
     System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +42 
     System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +479 

答えて

0

FooのFoo.dllへの循環参照が別の参照を介して行われました。それでも、ビルドされていないプロジェクトにdllをコピーする理由はまだ分かりません。

重要なことは、循環参照があるときにVisual Studioやmsbuildが予期せず動作することです。

関連する問題