关于AZURE Iot Hub官网demo运行的问题
我从官网上下载的Iot hub demo,用的vs2015,但是运行起来总是有问题,显示的是:系统检测到在一个调用中尝试使用指针参数时的无效指针地址。有没有哪位遇到类似的情况,异常如下,代码如下
exception:Microsoft.ServiceBus.Messaging.MessagingCommunicationException was unhandled HResult=-2146233088 IsTransient=true Message=系统检测到在一个调用中尝试使用指针参数时的无效指针地址。 Source=Microsoft.ServiceBus StackTrace: 在 Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result) 在 Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.RunSynchronously() 在 Microsoft.ServiceBus.Messaging.Amqp.AmqpEventHubClient.GetRuntimeInformation() 在 ReadDeviceToCloudMessages04.Program.Main(String[] args) 位置 F:\学习课件\C#学习资料\AZURE练习程序\ReadDeviceToCloudMessages\ReadDeviceToCloudMessages04\Program.cs:行号 34 在 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在 System.Threading.ThreadHelper.ThreadStart_Context(Object state) 在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 在 System.Threading.ThreadHelper.ThreadStart() InnerException: ErrorCode=10014 HResult=-2147467259 Message=系统检测到在一个调用中尝试使用指针参数时的无效指针地址。 NativeErrorCode=10014 Source=Microsoft.ServiceBus StackTrace: Server stack trace: 在 System.Net.Sockets.Socket.get_RemoteEndPoint() 在 Microsoft.ServiceBus.Messaging.Amqp.Transport.TcpTransport..ctor(Socket socket, TcpTransportSettings transportSettings) 在 Microsoft.ServiceBus.Messaging.Amqp.Transport.TcpTransportInitiator.Complete(SocketAsyncEventArgs e, Boolean completeSynchronously) Exception rethrown at [0]: 在 Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result) 在 Microsoft.ServiceBus.Messaging.Amqp.AmqpMessagingFactory.ConnectAsyncResult.<GetAsyncSteps>b__9e(ConnectAsyncResult thisPtr, IAsyncResult r) 在 Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result) Exception rethrown at [1]: 在 Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result) 在 Microsoft.ServiceBus.Messaging.Amqp.AmqpMessagingFactory.EndCreateConnection(IAsyncResult result) 在 Microsoft.ServiceBus.Messaging.Amqp.FaultTolerantObject`1.CreateAsyncResult.<GetAsyncSteps>b__4(CreateAsyncResult thisPtr, IAsyncResult r) 在 Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result) Exception rethrown at [2]: 在 Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result) 在 Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult) 在 Microsoft.ServiceBus.Messaging.Amqp.FaultTolerantObject`1.OnEndCreateInstance(IAsyncResult asyncResult) 在 Microsoft.ServiceBus.Messaging.SingletonManager`1.EndGetInstance(IAsyncResult asyncResult) 在 Microsoft.ServiceBus.Messaging.Amqp.AmqpMessagingFactory.CreateManagementLinkAsyncResult.<>c__DisplayClass17a.<GetAsyncSteps>b__175(CreateManagementLinkAsyncResult thisPtr, IAsyncResult r) 在 Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result) Exception rethrown at [3]: 在 Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result) 在 Microsoft.ServiceBus.Messaging.Amqp.AmqpEventHubClient.GetRuntimeInfoAsyncResult.<GetAsyncSteps>b__14(GetRuntimeInfoAsyncResult thisPtr, IAsyncResult r) 在 Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result) InnerException:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.ServiceBus.Messaging;
using System.Threading;
namespace ReadDeviceToCloudMessages04
{
class Program
{
static string connectionString = "xxxxx";
static string iotHubD2cEndpoint = "messages/events";
static EventHubClient eventHubClient;
private static async Task ReceiveMessagesFromDeviceAsync(string partition, CancellationToken ct)
{
var eventHubReceiver = eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow);
while (true)
{
if (ct.IsCancellationRequested) break;
EventData eventData = await eventHubReceiver.ReceiveAsync();
if (eventData == null) continue;
string data = Encoding.UTF8.GetString(eventData.GetBytes());
Console.WriteLine("Message received. Partition: {0} Data: '{1}'", partition, data);
}
}
static void Main(string[] args)
{
Console.WriteLine("Receive messages. Ctrl-C to exit.\n");
eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, iotHubD2cEndpoint);
// var d2cPartitionss = eventHubClient.GetRuntimeInformation();
var r = eventHubClient.GetRuntimeInformation().PartitionIds;
var d2cPartitions = eventHubClient.GetRuntimeInformation().PartitionIds;
CancellationTokenSource cts = new CancellationTokenSource();
System.Console.CancelKeyPress += (s, e) =>
{
e.Cancel = true;
cts.Cancel();
Console.WriteLine("Exiting...");
};
var tasks = new List<Task>();
foreach (string partition in d2cPartitions)
{
tasks.Add(ReceiveMessagesFromDeviceAsync(partition, cts.Token));
}
Task.WaitAll(tasks.ToArray());
}
}
}