我实现了两个aspnet核心webapi服务。第一个服务(.net core)使用restsharp调用第二个服务(.net framework 461):
public static RestResponse Execute(this IRestClient client, IRestRequest request)
{
var taskCompletion = new TaskCompletionSource();
client.ExecuteAsync(request, r => taskCompletion.SetResult(r));
return (RestResponse)(taskCompletion.Task.Result);
}
请注意,任务是故意同步调用的,因此
.Result
在代码中。此外,此方法使用经过身份验证的用户调用impersonated!
这两个服务都托管在IIS中,并配置为使用Kerberos windows身份验证。这两个服务都以管理员身份运行。只有第一个服务使用https,另一个仅使用http,但两者都使用与绑定url相同的域。现在,当我在本地开发环境中调试这两个服务时,一切都正常。将代码移动到IIS时,出现以下异常:
调用上述方法时出错
Execute
. 如果Kerberos有问题,我已经检查了事件日志,但没有看到任何与Kerberos相关的问题。在我的日志文件中,我还可以看到第二个服务没有运行任何代码,调用也没有那么远。
谁能给我指一下正确的方向吗。我不知道是什么导致了这个问题。
使现代化
我尝试从服务器外部调用Firefox的两个服务,这两个服务都工作了几次,但在服务器重新启动后,它就不再工作了。非常奇怪的行为。