Microsoft.Azure.Devices.Client.1.29.1-preview-001
- Rename
DeviceStreamRequest.Url
toDeviceStreamRequest.Uri
, since it represents a Uri.- NOTE: This is a breaking change for
DeviceStreaming
APIs.
- NOTE: This is a breaking change for
- SDK fixes from
master
branch:- Fix issue where MQTT
ReceiveAsync
with 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
SendEventBatchAsync
always throwsInvalidOperationException
. - Fix issue where AMQP connection throws
ObjectDisposedException
whenOpenAsync
fails to open sender link. - Fix issue where AMQP
SendTwinPatchAsync
with cancellation token doesn’t cancel after cancellation token is cancelled. - Revert to throw
TimeoutException
if operation times out instead ofIotHubCommunicationException
. - Revert to throw
OperationCancelledException
if 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.Json
dependency to 12.0.3 - Fixed twin parsing to use
DateTimeOffset
instead ofDateTime
(#1122) - Fixed Mqtt adaptor not always cleaning up while closing (PR #1181)
- Fixed
MqttTransportHandler
not handlingConnectExceptions
correctly (#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
ModuleClient
configured withMqtt_Tcp_Only
fails 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-error
amqp:link :transfer-limit-exceeded
amqp:resource-locked
- Dropped support for .NET Standard 1.3, and added support for .NET Framework 4.7.2.
- Improved XML comments
MqttTransportSettings.CertificateRevocationCheck
andAmqpTransportSettings.CertificateRevocationCheck
are now linked withTlsVersions.Instance.CertificateRevocationCheck
property.- Made
Message
class partially cloneable - to be able to copy system properties to a new instance (#1923). SeeMessage.CloneWithBody
method. - Updated
System.Net.Http
package 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
RemoteCertificateValidationCallback
for 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
CancellationTokenSource
being 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.Url
toDeviceStreamResponse.Uri
, since it represents a Uri.- NOTE: This is a breaking change for
DeviceStreaming
APIs.
- NOTE: This is a breaking change for
- SDK fixes from
master
branch:- Add modelId support for PnP summer refresh
- Upgraded
Newtonsoft.Json
dependency 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.ConnectAsync
method now respects theSslProtocol
value 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
StorageAuthenticationType
to specify key-based or identity-based authentication. - New property
JobProperties.StorageAuthenticationType
for use in import/export devices jobs. - Added two overloaded methods:
RegistryManager.ImportDevicesAsync
andRegistryManager.ExportDevicesAsync
. The overloads take aJobProperties
instance so the user can pass all required and any optional parameters. - Two factory methods to make it easier to call
ImportDevicesAsync
andExportDevicesAsync
, making it clear which properties are required and which are optional. They areJobProperties.CreateForInportJob
andJobProperties.CreateForExportJob
respectively. - Removed two unreferenced classes:
ImportDevicesRequest
andExportDevicesRequest
.
- New enum
- Reuse
HttpClient
instances (#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
JobQuotaExceededException
to include the associated http error reason - Code clean up in
IotHubConnectionStringBuilder
based on coding standards