У меня есть проект веб-службы WCF, скажем FooService.vbproj с конечной точкой FooService.svc. Его реализация находится в отдельном проекте, Foo.vbproj, с классом Foo.vb, который реализует контракт на обслуживание IFooService и другие файлы. FooService имеет ссылку на проект Foo. FooService размещается в IIS локально.
Когда я собираю FooService, он компилирует проект Foo, затем проект FooService, и он работает просто отлично ; http://localhost/Foo/FooService.svc в браузере дает мне страницу информации о конечной точке. Но потом, если я строю только Foo самостоятельно , тогда я посещаю http://localhost/Foo/FooService.svc в браузере, и у меня появляется желтый экран смерти с "Метод не найден:" Foo.Bar Foo.IFooService. GetFizz (System.Guid) '. Подробности ниже.
Оказывается, он копирует старую версию Foo.dll в папку bin FooService. Откуда это?
Есть идеи, как устранить неполадки? Разве служба не должна сохранять «первый» новый файл 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