У меня есть приложение-функция Azure, которое использует автоматически сгенерированный клиент, созданный AutoRest (0.17.3). Когда приложение-функция вызывает метод инициализации автоматически сгенерированного кода, выдается следующая ошибка:
Microsoft.Azure.WebJobs.Script: One or more errors occurred. mscorlib: Attempted to access an element as a type incompatible with the array.
Ошибка возникает при добавлении Iso8601TimeSpanConverter в качестве преобразователей в JsonSerializerSettings
SerializationSettings = new Newtonsoft.Json.JsonSerializerSettings
{
Formatting = Newtonsoft.Json.Formatting.Indented,
DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat,
DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc,
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize,
ContractResolver = new Microsoft.Rest.Serialization.ReadOnlyJsonContractResolver(),
Converters = new System.Collections.Generic.List<Newtonsoft.Json.JsonConverter>
{
new Microsoft.Rest.Serialization.Iso8601TimeSpanConverter()
}
};
Мои настройки app.config для newtonsoft.json:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
Эта проблема не воспроизводится из консольного приложения, но возникает при развертывании в приложении-функции Azure.