2010-11-22 10 views
0

Ich habe ein WCF-Web-Service-Projekt, sagen FooService.vbproj mit einem FooService.svc-Endpunkt. Die Implementierung erfolgt in einem separaten Projekt, Foo.vbproj, mit einer Foo.vb-Klasse, die den IFooService-Dienstvertrag implementiert, und anderen Dateien. FooService hat einen Projektverweis auf Foo. FooService wird lokal in IIS gehostet.Abhängiges Projekt Build bricht einen WCF-Dienst

Wenn ich FooService baue, kompiliert es das Foo-Projekt, dann das FooService-Projekt, und es funktioniert gut; http://localhost/Foo/FooService.svc in einem Browser gibt mir die Endpunkt-Infoseite. Aber dann, wenn ich nur Foo allein baue, dann besuche ich http://localhost/Foo/FooService.svc in einem Browser, bekomme ich einen gelben Bildschirm des Todes, mit "Methode nicht gefunden: 'Foo.Bar Foo.IFooService.GetFizz (System.Guid)'. Mehr Details unten.

Stellt sich heraus, es ist eine alte Version von Foo.dll in FooService bin-Ordner kopiert. Wenn das aus?

Irgendwelche Ideen auf, wie der Dienst zu beheben kommt? Sollte halten nicht die „erste "neue Foo.dll so, dass der Endpunkt funktionieren würde, noch

Voll Stack-Trace:

[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 

Antwort

0

Es stellte sich heraus, dass es einen indirekten indirekten Verweis auf Foo.dll in Foo über eine andere Referenz gab. Immer noch nicht sicher, warum es eine DLL zu einem Projekt kopieren würde, das nicht gebaut wird.

Die wichtige Sache ist, dass Visual Studio und/oder Msbuild sich unerwartet verhalten, wenn Sie einen Zirkelverweis haben.

Verwandte Themen