gpt4 book ai didi

azure - 从 Azure 应用服务调用 API 时出现 403

转载 作者:行者123 更新时间:2023-12-02 07:33:27 25 4
gpt4 key购买 nike

我有一个奇怪的问题。我有一个 .NET Core 应用程序,它在本地计算机上运行良好并通过了单元测试。

在应用程序内部,它基本上调用我们的平台网络服务:

using( WebClient client = new WebClient() )
{
NetworkCredential creds = new NetworkCredential(_userName, _password);
CredentialCache credCache = new CredentialCache();
credCache.Add(new System.Uri(_baseUrl), "Basic", creds);
client.Credentials = credCache;

var url = _baseUrl + "/api/v1/Pricing/Rates";
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
var request = JsonConvert.SerializeObject(data);
System.Console.Out.WriteLine(request);
var response = client.UploadString(url, request);
var responseObject = JObject.Parse(response);
var products = responseObject["PricingProducts"].Children();

var result = new Dictionary<string, double>();
foreach( var product in products )
{
result.Add(product.Value<string>("LoanProgramName"),
product.Value<double>("Rate"));
}
return result;
}

当我使用 dotnet run 在本地计算机上执行此操作时,一切正常。单元测试也很有效。除了我从平台 Web 服务收到 403 错误之外,应用服务上的日志并没有告诉我太多信息。

ers.RatesController.Get (AlexaRates) with arguments ((null)) - ModelState is Valid
2018-02-24 06:37:44.418 +00:00 [Information] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Executed action AlexaRates.Controllers.RatesController.Get (AlexaRates) in 201.3483ms
2018-02-24 06:37:44.447 +00:00 [Error] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HLBRA4B41EO8", Request id "0HLBRA4B41EO8:00000002": An unhandled exception was thrown by the application.
System.Net.WebException: The remote server returned an error: (403) Forbidden.
at System.Net.HttpWebRequest.GetResponse()
at System.Net.WebClient.GetWebResponse(WebRequest request)
at System.Net.WebClient.DownloadBits(WebRequest request, Stream writeStream)
at System.Net.WebClient.UploadBits(WebRequest request, Stream readStream, Byte[] buffer, Int32 chunkSize, Byte[] header, Byte[] footer)
at System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request)
at System.Net.WebClient.UploadString(Uri address, String method, String data)
at Rates.RetrieveLatest() in D:\home\site\repository\AlexaRates\Rates.cs:line 50
at AlexaRates.Controllers.RatesController.Get() in D:\home\site\repository\AlexaRates\Controllers\RatesController.cs:line 22
at lambda_method(Closure , Object , Object[] )
at Microsoft.Exten

有人经历过类似的事情吗?我看到了一堆 403 帖子,但它们主要是关于人们调用服务上托管的 REST API,而不是调用。

最佳答案

403禁止错误通常意味着服务器理解该请求但拒绝授权。

  1. 根据您的错误消息,错误似乎发生在 Rates 类和 RatesController 类中,您尚未向我们展示。您可以使用远程调试设置断点来检查这些类中的代码。
  2. 您说该项目在本地运行良好,但在 Azure 中出现错误,因此请确保您已将所有项目和数据源发布到 Azure。检查“_baseUrl”是否来自 Azure。并确保您已启动 Azure 应用服务。
  3. 可能还有其他原因导致403禁止错误。比如页面缓存、cookie登录等。你可以引用这个article了解如何修复 403 禁止错误。

Cause of 403 Forbidden Errors

403 errors are almost always caused by issues where you're trying to access something that you don't have access to.

关于azure - 从 Azure 应用服务调用 API 时出现 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48960116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com