C# DelegatingHandler在本地主机上工作,但在Azure上不工作
我有以下代码,在转发到我的C# DelegatingHandler在本地主机上工作,但在Azure上不工作,c#,azure,asp.net-web-api,azure-web-app-service,delegatinghandler,C#,Azure,Asp.net Web Api,Azure Web App Service,Delegatinghandler,我有以下代码,在转发到我的localhost:1671时可以正常工作: protected override async System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { UriBuilder forwardUri = new UriBuild
localhost:1671
时可以正常工作:
protected override async System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
{
UriBuilder forwardUri = new UriBuilder(request.RequestUri);
//remove the proxy port and replace with an Http port
forwardUri.Port = 1671;
//send it on to the requested URL
request.RequestUri = forwardUri.Uri;
HttpClient client = new HttpClient();
if (request.Method == HttpMethod.Get)
request.Content = null;
try
{
var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
if (response.StatusCode == HttpStatusCode.OK)
{
ManageOnline(response.RequestMessage);
}
return response;
}
catch (Exception ex)
{
throw;
}
}
受保护的覆盖异步System.Threading.Tasks.Task SendAsync(HttpRequestMessage请求,System.Threading.CancellationToken CancellationToken)
{
UriBuilder forwardUri=新的UriBuilder(request.RequestUri);
//删除代理端口并替换为Http端口
forwardUri.Port=1671;
//将其发送到请求的URL
request.RequestUri=forwardUri.Uri;
HttpClient=新的HttpClient();
if(request.Method==HttpMethod.Get)
request.Content=null;
尝试
{
var response=wait client.sendaync(请求,HttpCompletionOption.ResponseHeadersRead);
if(response.StatusCode==HttpStatusCode.OK)
{
ManageOnline(response.RequestMessage);
}
返回响应;
}
捕获(例外情况除外)
{
投掷;
}
}
但是,当我将其更改为azure上的我的网站(例如xxxx.azurewebsites.net)时,它不起作用
知道我是否需要对Azure进行不同的配置吗?我假设Azure上的端口为80。我假设您在这里遵循本教程: 检查您的web/app.config上是否有以下条目
<system.net>
<defaultProxy enabled="false" />
</system.net>
删除
您可以更具体地说,您所说的“它不工作”是什么意思?不启动、不响应请求、异常等?我找不到一个404站点。