Ошибка WCF: «Указанный ключ отсутствует в словаре». при инициализации клиентского прокси - PullRequest
0 голосов
/ 10 ноября 2009

Я получаю следующую ошибку: «Указанный ключ отсутствует в словаре».

Код только пытается создать соединение с прокси-клиентом:

FileService.FileServiceClient svc = new CCS.FileService.FileServiceClient();

Трассировка стека:

   at System.ThrowHelper.ThrowKeyNotFoundException()
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at System.ServiceModel.Configuration.ServiceModelSectionGroup.get_Client()
   at System.ServiceModel.Description.ConfigLoader.LookupChannel(String configurationName, String contractName, Boolean wildcard)
   at System.ServiceModel.Description.ConfigLoader.LoadChannelBehaviors(ServiceEndpoint serviceEndpoint, String configurationName)
   at System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName)
   at System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address)
   at System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress)
   at System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName)
   at System.ServiceModel.EndpointTrait`1.CreateSimplexFactory()
   at System.ServiceModel.EndpointTrait`1.CreateChannelFactory()
   at System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait)
   at System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef()
   at System.ServiceModel.ClientBase`1..ctor()
   at CCS.FileService.FileServiceClient..ctor()
   at CCS.MainPage..ctor()
   at CCS.App.Application_Startup(Object sender, StartupEventArgs e)
   at System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)

У меня есть приложение silverlight 3, к которому я добавляю службу WCF в веб-приложение. Кто-нибудь знает способ решить эту проблему? Похоже, ему трудно пытаться получить информацию о привязке.

1 Ответ

2 голосов
/ 10 ноября 2009

Похоже, это проблема с Visual Studio , загружающая неправильный файл Silverlight 2 вместо Silverlight 3:

Чтобы обойти эту проблему сейчас, удалите Silverlight 2 SDK, обновите справочник услуг и перестройте приложение Silverlight.

Если вы хотите, чтобы ваш сервис использовался приложениями Silverlight 2 и Silverlight 3, вы можете изменить привязку обратно на basicHttpBinding. Для этого отредактируйте файл web.config для веб-проекта, содержащего сервис. Затем обновите справочную службу и перестройте приложение Silverlight.

...