下面的代码在控制台应用程序中运行良好。
当它在 Web 应用程序中的 IIS 上运行时,它会在 client.GetAync(URL) 行上超时。
有什么想法吗?
static async Task<byte[]> GetLogo(string URL, string AccessToken)
{
byte[] imageData = null;
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", "Bearer " + AccessToken);
HttpResponseMessage response = await client.GetAsync(URL);
if (response.IsSuccessStatusCode)
{
imageData = await response.Content.ReadAsByteArrayAsync();
}
}
return imageData;
}
谢谢,
在 Windows 中搜索“事件查看器”,然后导航到 Windows 日志文件夹,最后打开“应用程序”部分。在此页面中,您可以查看IIS错误日志。
您还可以通过 Web.config 文件记录错误。 下面,我为您提供了一个示例 Web.config 文件。请注意,此 Web.config 文件基于 .NET 8 另外,您需要将 'YourAppName' 替换为您的应用程序的名称。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\YourAppName.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
另外,请注意“\logs\stdout”文件夹应与 Web.Config 文件一起存在,并且应授予它们适当的访问权限。