Зависимая сборка проекта нарушает службу WCF - PullRequest
0 голосов
/ 23 ноября 2010

У меня есть проект веб-службы 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

1 Ответ

0 голосов
/ 23 ноября 2010

Оказывается, что в Foo есть круговая косвенная ссылка на Foo.dll через другую ссылку.Все еще не уверен, почему он скопировал бы dll в проект, который не был построен.

Важно то, что Visual Studio и / или msbuild ведут себя неожиданно, когда у вас есть циклическая ссылка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...