Вызов неоднозначен между следующими методами

Я создал базовое приложение для чата, используя SignalR 1.0.0 alpha 2. Теперь, когда я сделал простые изменения и попытался запустить код, я получаю следующую ошибку:

Ошибка внутреннего сервера 500

Даже после замены измененного кода на старый код, когда ошибка не исчезла, я удалил Signalr, думая, что он может быть поврежден.

Когда я снова установил SignalR (SignalR 1.0.0 rc1), я получаю следующую ошибку в RegisterHubs.cs:

Ошибка 1 The call is ambiguous between the following methods or properties: 'Microsoft.AspNet.SignalR.RouteExtensions.MapHubs(System.Web.Routing.RouteCollection)' and 'Microsoft.AspNet.SignalR.RouteExtensions.MapHubs(System.Web.Routing.RouteCollection)' C:\Users\noName\Desktop\Main project\Chat_Application\App_Start\RegisterHubs.cs 15 13 Chat_Application

Я сослался на эту ссылку, в которой говорится, что эта ошибка возникает при наличии повторяющихся методов. Я понимаю проблему, но я не знаю, как это решить.

Я добавил следующие скрипты, относящиеся к более новой версии SignalR, на мою страницу aspx (удалены ссылки на более старые версии)

<script src="Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.signalR-1.0.0-rc1.min.js" type="text/javascript"></script>
<script type="text/javascript" src='<%: ResolveClientUrl("~/signalr/hubs") %>'></script>
//even tried
//<script src="/signalr/hubs" type="text/javascript"></script>
//My javascript and CSS files here

Пожалуйста помоги.


person Mr_Green    schedule 03.01.2013    source источник
comment
Проверьте папку bin - у вас есть несколько копий dll?   -  person FJT    schedule 03.01.2013
comment
Корзина @FionaT пуста... (очистил решение)   -  person Mr_Green    schedule 03.01.2013


Ответы (3)


Возможно, в вашем проекте/системе есть сборки обеих версий. Во-первых, проверьте ссылки на сборки во всех ваших проектах — все соответствующие ссылки должны указывать на согласованную версию SignalR. Если возможно, избавьтесь от предыдущей версии — удалите из GAC и/или удалите пакет NuGet из решения.

person VinayC    schedule 03.01.2013
comment
Не уверен, почему это произошло, но в моем проекте есть две папки предыдущей версии SignalR в папке packages. Когда я удалил его, ошибка исчезла. Я даже запускаю команду uninstall из консоли диспетчера пакетов nuget перед установкой более новой версии SignalR. - person Mr_Green; 03.01.2013

Сделайте следующее:

  1. закройте визуальную студию (или даже лучше: перезагрузите компьютер, на всякий случай)
  2. откройте C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
  3. удалите файлы из этого каталога (это временные файлы, не волнуйтесь)
  4. запустите визуальную студию и перестройте все

Я надеюсь, что это сработает для вас!

person Nir    schedule 03.01.2013
comment
По-прежнему существует та же ошибка. (Временная папка ASP.NET уже пуста) - person Mr_Green; 03.01.2013
comment
Вы выполнили все шаги? (не просто очистка папки) - person Nir; 03.01.2013
comment
Да, я сделал .. Кажется, что dll более старой версии все еще существует, что вызывает такую ​​​​ошибку (я не уверен) - person Mr_Green; 03.01.2013

Я столкнулся с той же проблемой, поэтому я публикую свое решение здесь в надежде, что оно поможет кому-то еще:

Если у вас установлено осеннее обновление установлен и использует Добавить новый элемент > Класс SignalR Hub, он также включает следующие два пакета и связанные ссылки:

Microsoft.AspNet.SignalR.Hosting.AspNet.1.0.0-alpha1 Microsoft.AspNet.SignalR.Hosting.Common.1.0.0-alpha1

Включение этих ссылок вызовет ту же проблему. Удаление их решило это для меня.

Вам также следует удалить осеннее обновление и установить последнее отсюда.

person Town    schedule 09.01.2013
comment
да, я сделал то же самое. Проблема заключалась в том, что даже после удаления старой версии через диспетчер консоли Nuget все еще оставалось два пакета, о которых вы упомянули. Эти пакеты были причиной упомянутой мной ошибки. и я думаю, что предоставленные вами ссылки работают только для Visual Studio 2012, но не для VS 2010. В любом случае, ваш пост полезен и объясняет правильный способ решения проблемы. - person Mr_Green; 10.01.2013