Missingmethodexception get_querystring

Я столкнулся с этим исключением в своем приложении .net core (.net core 2.1, и я использую служебный стек 5.2).

Method not found: 'ServiceStack.Web.INameValueCollection ServiceStack.Web.IRequest.get_QueryString()'.

Первоначально он исходит от одного из плагинов, но я не могу понять, почему. Код разрывается на этой строке здесь.

session.ReferrerUrl = GetReferrerUrl(authService, session, request);

Кстати, в консоли приложения я также получаю это:

warn: ServiceStack.Serialization.StringMapTypeDeserializer[0] Property 'redirect' does not exist on type 'ServiceStack.Authenticate'

... но я не думаю, что это связано с указанным выше исключением.

Есть подсказки, в чем может быть проблема?

1
0
120
1

Ответы 1

Не существует INameValueCollection больше на IRequest, который был заменен в прошлом году на NameValueCollection из v5 +, какой бы код v4 вы ни использовали, его необходимо перекомпилировать с той же версией, что и остальная часть вашего проекта.

Чтобы получить чистое обновление, убедитесь, что все ваши проекты ссылаются на одну и ту же версию ServiceStack, удалите папки /bin и /obj и попробуйте выполнить восстановление из NuGet еще раз.

Если проблема не исчезла, очистите кеш NuGet и повторите восстановление:

warn: ServiceStack.Serialization.StringMapTypeDeserializer[0] Property 'redirect' does not exist on type 'ServiceStack.Authenticate'

Это не имеет значения, это просто предупреждение о том, что в запросе DTO было свойство redirect, я добавил его в список игнорирования в это коммит.

nuget locals all -clear

Я сделал это, я очистил все папки bin и obj, обновил свой ServiceStack до 5.4.1 во всех проектах, очистил кешированные пакеты nuget, но я все еще вижу ту же ошибку, когда нажимаю свой защищенный метод API.

ShP 26.10.2018 15:44

@ShP У вас есть старые двоичные файлы, которые были скомпилированы для v4, которые необходимо перекомпилировать для последней версии.

mythz 26.10.2018 17:31

Другие вопросы по теме