Производственная проблема JSON.NET - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть проект ASPNET Core, который запускает набор служб RESTful с использованием C # и Newtonsoft.JSON 11.0.2, которые я включил с помощью NuGet. Когда я запускаю все локально, используя Visual Studio 2017 и IIS Express, все работает нормально, и мои усилия по JSON Deserializer работают без проблем.

Когда я публикую решение в пакете Web Deploy, а затем установил это приложение в IIS 10 на экземпляр Windows Server 2016 в AWS, произойдет сбой десериализатора. Ошибка:

Newtonsoft.Json.JsonReaderException: неожиданный символ, обнаруженный при разборе значения: <. Путь '', строка 0, позиция 0 </p>

Неважно, публикую ли я в режиме отладки или выпуска.

Я запустил вызовы Postman, и возвращаемый JSON проверяет и выдает правильные объекты. Я видел, что в Solution Explorer версия 11.0.2, но в файле JSON ресурсов указана версия 10.0.1. Файл проекта .CS при просмотре в текстовом редакторе вне Visual Studio показывает 11.0.2.

Когда я смотрю в папку развернутого приложения на сервере, я не вижу никаких DLL-библиотек NewtonSoft, но вижу другие DLL-библиотеки, полученные с помощью NuGet. Возможно, это не проблема, учитывая, как развертывается JSON.NET, но я подумал, что стоит упомянуть.

Затем я включил регистратор и отправил входящий JSON в файл, и снова все было подтверждено, как и ожидалось.

Я перепробовал все, убедившись, что CORS правильно реализован как в приложении, так и в IIS. Я в полной растерянности относительно того, как действовать.

Может кто-нибудь помочь, пожалуйста?

Спасибо!

1 Ответ

0 голосов
/ 13 июня 2019

У меня была такая же проблема, и я решил этот код в web.config

<system.webServer>
    <handlers>
        <remove name="WebDAV" />
        <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
        <remove name="OPTIONSVerbHandler" />
        <remove name="TRACEVerbHandler" />
        <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <modules>
        <remove name="WebDAVModule" />
    </modules>
</system.webServer>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...