OID令牌无效

本文关键字:无效 令牌 OID | 更新日期: 2023-09-27 18:01:02

我正在使用VersionOne SDK,并且不断收到关于OID无效的错误。但是,当我使用该OID在VersionOne中查找测试时,它是测试的正确OID。

A first chance exception of type 'VersionOne.SDK.APIClient.OidException' occurred in VersionOne.SDK.APIClient.dll
Invalid OID token: Test:32423 

我正在将一个包含"Test:32423"的字符串传递到方法中。

public void UpdateTestResults(string strTestId, string strActualResult) 
    {
        var testId = Oid.FromToken(strTestId, _metaModel); 
        var query = new Query(testId);
        var assetType = _metaModel.GetAssetType("Test");
        var addResults = assetType.GetAttributeDefinition("ActualResults");
        query.Selection.Add(addResults);
        var result = _services.Retrieve(query);
        var test = result.Assets[0];
        var oldResult = GetValue(test.GetAttribute(addResults).Value);
        var time = DateTime.Now;
        const string format = "MMM ddd d HH:mm yyyy";
        test.SetAttributeValue(addResults, "<p>" + "'n" + oldResult + time.ToString(format) + "-->" + strActualResult + "</p>");
        _services.Save(test);
        _logger.Log(Loglevel.Debug, test.Oid.Token, oldResult, GetValue(test.GetAttribute(addResults).Value));
    }

我注意到,只有在背靠背运行一系列测试时才会出现错误。当我只运行一个测试时,错误永远不会发生。

这是我放在类顶部的代码,用于制作连接器和构造函数。

const string ApplicationUrl = "https://www12.v1host.com/VersionOneAccount/";
    readonly NetworkCredential _credentials = new NetworkCredential("userName", "passWord");
    readonly IMetaModel _metaModel = new MetaModel(new VersionOneAPIConnector(ApplicationUrl + "meta.v1/"));
    readonly IServices _services;

    public V1Tools(ref DataObject masterData)
    {
        _services = new Services(_metaModel, new VersionOneAPIConnector(ApplicationUrl + "rest-1.v1/", _credentials));
        _logger = masterData.Logger;
    }

OID令牌无效

当我查看内部异常时,我发现请求超时,导致抛出Invalid OID异常。因此,如果OID是正确的,并且您看到抛出了此错误,请检查是否有其他web请求干扰了您的应用程序和VersionOne服务器之间的通信。