Microsoft.Azure.Devices.Client.1.29.1-preview-001
- Rename
DeviceStreamRequest.UrltoDeviceStreamRequest.Uri, since it represents a Uri.- NOTE: This is a breaking change for
DeviceStreamingAPIs.
- NOTE: This is a breaking change for
- SDK fixes from
masterbranch:- Fix issue where MQTT
ReceiveAsyncwith cancellation token always returns null. - Fix issue where MQTT packet id becomes 0 on 32kth messages sent, which caused MQTT connection to drop.
- Fix issue where AMQP
SendEventBatchAsyncalways throwsInvalidOperationException. - Fix issue where AMQP connection throws
ObjectDisposedExceptionwhenOpenAsyncfails to open sender link. - Fix issue where AMQP
SendTwinPatchAsyncwith cancellation token doesn’t cancel after cancellation token is cancelled. - Revert to throw
TimeoutExceptionif operation times out instead ofIotHubCommunicationException. - Revert to throw
OperationCancelledExceptionif operation is cancelled instead ofIotHubCommunicationException. - Fix connection string parser to allow special characters such as semicolon.
- Fix a missing await for async task in MQTT which could cause race condition to the connection.
- Add clarification to connection status callback documentation for HTTP.
- Add clarification to device operation timeout documentation.
- Upgraded
Newtonsoft.Jsondependency to 12.0.3 - Fixed twin parsing to use
DateTimeOffsetinstead ofDateTime(#1122) - Fixed Mqtt adaptor not always cleaning up while closing (PR #1181)
- Fixed
MqttTransportHandlernot handlingConnectExceptionscorrectly (#648) - Fixed the SDK not throwing an exception when the mqtt topic name was too large to publish (#1197)
- Added API to specify client side AMQP heartbeat interval.
- Centralize TLS version choice, prefer None where possible.
- Added API to enable/disable remote SSL certificate revocation check.
- Exposed the default transport settings values.
- Fixed null reference exception when device sets reported property but does not specify a desired property callback with AMPQ.
- Fix issue where
ModuleClientconfigured withMqtt_Tcp_Onlyfails to reconnect after edgeHub restart then never recovers (#1239) - When using AMQP, application properties with a null value will now be sent to the hub, matching MQTT/HTTP behavior (#919)
- Improve AMQP reconnection resiliency
- SDK will now retry on more error codes over AMQP. For more details, see amqp transport exceptions.
amqp:internal-erroramqp:link :transfer-limit-exceededamqp:resource-locked
- Dropped support for .NET Standard 1.3, and added support for .NET Framework 4.7.2.
- Improved XML comments
MqttTransportSettings.CertificateRevocationCheckandAmqpTransportSettings.CertificateRevocationCheckare now linked withTlsVersions.Instance.CertificateRevocationCheckproperty.- Made
Messageclass partially cloneable - to be able to copy system properties to a new instance (#1923). SeeMessage.CloneWithBodymethod. - Updated
System.Net.Httppackage from 4.3.3 to 4.3.4 to resolve a security vulnerability in the package. - Add modelId support for PnP summer refresh
- Add support for .NET Standard 2.1
- Add a way for nested Edge to pass authentication chain to IoTHub
- Add twin array support and update to latest service API version
- Enable
RemoteCertificateValidationCallbackfor websocket connections to allow users to validate remote certificates - Fix Mqtt C2D subscription message to set QoS of 1
- Fix comments on twin/methods and create
- Fix issue to require explicit subscribe to desired properties in latest Service API version
- Fix for each subscribe request declare its topic name on mqtt messages
- Remove DNS lookup in mqtt stack when proxy is present
- Don't dispose a message being returned
- Dispose
CancellationTokenSourcebeing used internally in the library - Deprecate file upload APIs in favor of new, more granular APIs that allow users to use their own Azure storage SDK to do the actual upload
- Fix issue where MQTT
Microsoft.Azure.Devices.1.27.1-preview-001
- Rename
DeviceStreamResponse.UrltoDeviceStreamResponse.Uri, since it represents a Uri.- NOTE: This is a breaking change for
DeviceStreamingAPIs.
- NOTE: This is a breaking change for
- SDK fixes from
masterbranch:- Add modelId support for PnP summer refresh
- Upgraded
Newtonsoft.Jsondependency to 12.0.3 - Fix proxy handling on HTTP for requests with per-request timeout.
- Centralize TLS version choice, prefer None where possible.
- Fixed proxy handling for Http client.
IotHubClientWebSocket.ConnectAsyncmethod now respects theSslProtocolvalue specified inTlsVersions.Instance.Preferred.- Dropped support for .NET Standard 1.3, and added support for .NET Framework 4.7.2.
- Enables new security functionality to specify how hub should authenticate when working with a storage account when running import/export devices jobs.
- New enum
StorageAuthenticationTypeto specify key-based or identity-based authentication. - New property
JobProperties.StorageAuthenticationTypefor use in import/export devices jobs. - Added two overloaded methods:
RegistryManager.ImportDevicesAsyncandRegistryManager.ExportDevicesAsync. The overloads take aJobPropertiesinstance so the user can pass all required and any optional parameters. - Two factory methods to make it easier to call
ImportDevicesAsyncandExportDevicesAsync, making it clear which properties are required and which are optional. They areJobProperties.CreateForInportJobandJobProperties.CreateForExportJobrespectively. - Removed two unreferenced classes:
ImportDevicesRequestandExportDevicesRequest.
- New enum
- Reuse
HttpClientinstances (#1276), avoiding a known issue withHttpClient.Dispose()that can cause TCP socket exhaustion under heavy load. - Use latest Service API version that is available in all regions
- Add Support for .NET Standard 2.1
- Add twin array support
- Update
JobQuotaExceededExceptionto include the associated http error reason - Code clean up in
IotHubConnectionStringBuilderbased on coding standards