Передача файла Thingworx не удалась
Я использую Thingworx .NET SDK в Windows 10.
Я унаследовал класс FileTransferVirtualThing. Проблема в том, что при попытке передать файл. Я могу перемещаться и просматривать каталоги, которые я добавил в словарь VirtualDirectories, без проблем. Когда я инициализирую передачу файла из гибрида, это не удается. Размер файла не является проблемой. Регистрация производит это:
2017-09-05 08:07:24.458Z [L: Error] [T: 60] [U: haha] [O: com.thingworx.communications.client.TwApiWrapper] [Error] twFileManager_GetRealPath: Invalid parameters
2017-09-05 08:07:24.458Z [L: Error] [T: 60] [U: haha] [O: com.thingworx.communications.client.TwApiWrapper] [Error] twFileManager_GetRealPath: Invalid parameters
2017-09-05 08:07:24.459Z [L: Critical] [T: 60] [U: haha] [O: com.thingworx.communications.client.TwApiWrapper] [Critical] FILE TRANSFER STARTED. File: (null), Mode: read
2017-09-05 08:07:24.459Z [L: Error] [T: 60] [U: haha] [O: com.thingworx.communications.client.TwApiWrapper] [Error] twFileManager_GetRealPath: Invalid parameters
2017-09-05 08:07:24.460Z [L: Error] [T: 60] [U: haha] [O: com.thingworx.communications.client.TwApiWrapper] [Error] twFileManager_GetOpenFile: Missing tid and Error getting real path for *HAHA007:
2017-09-05 08:07:24.460Z [L: Error] [T: 60] [U: haha] [O: com.thingworx.communications.client.TwApiWrapper] [Error] twFileManager_GetRealPath: Invalid parameters
2017-09-05 08:07:24.461Z [L: Error] [T: 60] [U: haha] [O: com.thingworx.communications.client.TwApiWrapper] [Error] twFileManager_OpenFile: Error getting real path to file NULL
2017-09-05 08:07:24.462Z [L: Error] [T: 60] [U: haha] [O: com.thingworx.communications.client.TwApiWrapper] [Error] twStartFileTransfer: Error opening
2017-09-05 08:07:24.882Z [L: Error] [T: 60] [U: haha] [O: com.thingworx.communications.client.TwApiWrapper] [Error] twFinishFileTransfer: File: /MyFiles/crash_0540_2017-08-21_07-46-29-907_65c0.dmp not found in open files list
Инициализация в коде происходит примерно так:
var virtualDirs = new Dictionary<string, string>
{
{"crashdumps", @"c:\crashdumps"},
{"logs", @"C:\MyCompany\OurProduct\Service\Log"}
};
try
{
thing = new MyDerivedThing(
iotSetup.Name,
iotSetup.Description,
iotSetup.Identifier,
client,
virtualDirs);
client.bindThing(thing);
Я немного повозился с определением путей, переходов относительных / абсолютных, различных слешей и т. Д.