我正在从我的WCF应用程序访问第三方Web api。虽然开发我能够访问这些API,但是当我将WCF部署到IIS时,它无法连接到Web API并向我发出以下错误:
" System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它X.X.X.X:443 "
只是为了确保我的服务器在我部署WCF的地方很好。我尝试从一个简单的控制台应用程序访问这些web api。它从我的开发机器和服务器机器访问那些api。现在我觉得罪魁祸首不是第三方的web api服务器,但是当WCF服务访问时出现问题' IIS中托管的web-api。
请帮助!!!
答案 0 :(得分:2)
最后我发现了这个问题。 IIS在用户'网络服务'下运行我的WCF。或“'应用程序池标识'。这些只是窗口内置用户,访问受限。当我尝试从控制台应用程序访问第三方API时,它工作正常,因为它在我的用户凭据下运行,该凭据具有管理员凭据。所以我得出结论,当一个应用程序进行跨域调用时,它应该在具有足够凭据的用户下运行以进行此类调用。
解决方案是将我的应用程序池标识更改为管理员用户标识(我将其更改为我的登录用户)。它工作并从WCF服务调用第三方API