我们已经构建了一个数据迁移软件包,该软件包将数据从传统访问数据库迁移到CRM在线实例。我们的客户端围绕此构建了一个非常复杂的身份验证平台,因此我们必须使用客户端ID 和客户端秘密对其CRM进行认证的方法。
数据集成在第一个小时运行良好,但然后我们突然遇到以下错误。据我们所知,似乎身份验证令牌已经过期,而金斯威夫特(Kingswaysoft)并没有自动刷新它。请注意,我们没有收到个人操作的超时 - 由于超时,整个工作将在一个小时后停止。
[数据流任务#1]警告:发生了例外 处理服务请求,将尝试相同的请求 在60秒后再次。 Kingswaysoft.integrationToolkit.dynamicscrm.crmserviceException:CRM 服务呼叫返回错误:HTTP请求未经授权 客户端认证方案"匿名"。身份验证标题 从服务器收到的是' 授权= https://login.microsoftonline.com/db630ef6-1667-4b9b-b52e-341a723742d7/oauth2/authorize, resource_id = https://myorg.crm6.dynamics.com/'。
我们已经使用Fiddler检查了通过集成发送的数据包,我们可以确认正在向Microsoft服务器提出新的身份验证请求,并作为该请求的一部分返回新的令牌,但是请求将请求发送给该请求。CRM仍在使用旧令牌。
身份验证请求立即发生在每个失败请求之前,因此Kingswaysoft似乎已经确定它需要重新验证,但并未使用返回的新令牌。
使用 client> client ID/client necret 对身份验证的方法时,我们可以做些什么来解决这个问题?/p>
我们已经确定了问题的来源(这是一个棘手的问题)。如果您遇到了问题,请确保您正在使用我们的软件的最新版本(我们最初是在2019年4月2日私下提供的临时构建中解决了该问题 - 现在,我们的官方构建中的更改已在我们的官方中)。