System.ArgumentException: путь не имеет допустимой формы при вызове NServiceBus через задачу Hangfire - PullRequest
0 голосов
/ 07 июня 2018

Я получаю приведенную ниже ошибку, когда пытаюсь вызвать NServiceBus / Rabbit MQ через задачу Hangfire. Я пытался обновить версию .NET Framework с 4.5.2 до 4.6.1

Не уверен, что это такоеЯ тут не так делаю?Я продолжаю получать эту ошибку. Однако, когда я запускаю ее локально (через тестовый проект), сообщение успешно помещается в служебную шину (я могу видеть его в конечной точке службы)

    System.AggregateException
One or more errors occurred.

System.AggregateException: One or more errors occurred. ---> System.ArgumentException: The path is not of a legal form.
   at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetFullPathInternal(String path)
   at System.IO.Path.GetFullPath(String path)
   at System.Diagnostics.FileVersionInfo.GetFullPathWithAssert(String fileName)
   at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName)
   at NServiceBus.Transport.RabbitMQ.ConnectionConfiguration.Create(String connectionString, String endpointName) in C:\BuildAgent\work\a9e6741f41af7061\src\NServiceBus.RabbitMQ\Configuration\ConnectionConfiguration.cs:line 141
   at NServiceBus.Transport.RabbitMQ.RabbitMQTransportInfrastructure..ctor(SettingsHolder settings, String connectionString) in C:\BuildAgent\work\a9e6741f41af7061\src\NServiceBus.RabbitMQ\RabbitMQTransportInfrastructure.cs:line 29
   at NServiceBus.RabbitMQTransport.Initialize(SettingsHolder settings, String connectionString) in C:\BuildAgent\work\a9e6741f41af7061\src\NServiceBus.RabbitMQ\RabbitMQTransport.cs:line 18
   at NServiceBus.InitializableEndpoint.<Initialize>d__1.MoveNext() in C:\BuildAgent\work\b549d46003942065\src\NServiceBus.Core\InitializableEndpoint.cs:line 49
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NServiceBus.Endpoint.<Start>d__1.MoveNext() in C:\BuildAgent\work\b549d46003942065\src\NServiceBus.Core\Endpoint.cs:line 27
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at ERM.Messaging.ServiceBus.Client.ServiceBusClient.<StartAsync>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at MeterServiceRequest.SyncMeterServiceRequest.<RunAsync>d__1.MoveNext()
   --- End of inner exception stack trace ---
   at MeterServiceRequest.SyncMeterServiceRequest.<RunAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at ERM.TaskRunner.Server.Impl.TaskWrapper.<RunAsync>d__0.MoveNext() in C:\Code\EMSCore\Apps\TaskRunner\TaskRunner.Server\Impl\TaskWrapper.cs:line 29
---> (Inner Exception #0) System.ArgumentException: The path is not of a legal form.
   at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetFullPathInternal(String path)
   at System.IO.Path.GetFullPath(String path)
   at System.Diagnostics.FileVersionInfo.GetFullPathWithAssert(String fileName)
   at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName)
   at NServiceBus.Transport.RabbitMQ.ConnectionConfiguration.Create(String connectionString, String endpointName) in C:\BuildAgent\work\a9e6741f41af7061\src\NServiceBus.RabbitMQ\Configuration\ConnectionConfiguration.cs:line 141
   at NServiceBus.Transport.RabbitMQ.RabbitMQTransportInfrastructure..ctor(SettingsHolder settings, String connectionString) in C:\BuildAgent\work\a9e6741f41af7061\src\NServiceBus.RabbitMQ\RabbitMQTransportInfrastructure.cs:line 29
   at NServiceBus.RabbitMQTransport.Initialize(SettingsHolder settings, String connectionString) in C:\BuildAgent\work\a9e6741f41af7061\src\NServiceBus.RabbitMQ\RabbitMQTransport.cs:line 18
   at NServiceBus.InitializableEndpoint.<Initialize>d__1.MoveNext() in C:\BuildAgent\work\b549d46003942065\src\NServiceBus.Core\InitializableEndpoint.cs:line 49
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NServiceBus.Endpoint.<Start>d__1.MoveNext() in C:\BuildAgent\work\b549d46003942065\src\NServiceBus.Core\Endpoint.cs:line 27
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at ERM.Messaging.ServiceBus.Client.ServiceBusClient.<StartAsync>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()

1 Ответ

0 голосов
/ 19 июня 2018

Мы решили проблему, разместив файлы шины NService (включая DLL) на том же сервере, где были расположены задачи Hangfire, и добавили ссылки на шину NService в решении задачи Hangfire

...