我有一个ASPX页面,它异步调用Web服务:
public async Task GetTypeAccess()
{
HttpResponseMessage response = await new Common.HttpClient().GetAsync("http://webserviceURL:port/Accounts/CurrentUser");
string responseContent = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
..
}
else
{
Response.Redirect("~/AccessDenied.html");
}
}
在页面加载中,此方法注册为异步
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
RegisterAsyncTask(new PageAsyncTask(GetTypeAccess));
}
}
ASPX页面被声明为异步
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind=... Async="true" %>
现在,如果使用IP地址或主机名调用页面,则会触发Web服务调用,等待响应并验证用户身份:
http://IP_address:60815/Home/MainPage.aspx
http://hostname:60815/Home/MainPage.aspx
如果我使用完整域名调用该页面(并使用其完整域名更新),则不会触发Web服务调用,并打开AccessDenied页面。
http://hostname.subdomain.com:60815/Home/MainPage.aspx
似乎该方法应该是异步的,实际上并不是#34;在第二种情况下等待&#34; -ing for the call。
我实际上找不到这两件事之间的关系,但只需更改包含完整域名的URL(page和webserviceURL),行为就不同了。
使用Windows身份验证