我有一个ASP.NET 6.0 Core Web API与Signalr发布到Windows Server 2017上的IIS。然后我有一个React-Native移动的应用程序使用@microsoft/signalr连接到SignalR中心。当移动的应用程序通过Android模拟器和我的Android手机在调试模式下运行时,它可以连接到Signalr没有问题.一切工作完美.现在,当我尝试在发布模式运行相同的应用程序,它不工作,它不能连接.请任何想法/帮助将不胜感激.
Program.cs主页
builder.Services.AddCors(options =>
{
options.AddDefaultPolicy(builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
//.AllowCredentials()
//.SetIsOriginAllowed((host) => true);
});
}
);
// Add services to the container.
builder.Services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
//options.JsonSerializerOptions.PropertyNamingPolicy = null;
});
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddSignalR();
builder.Logging.ClearProviders();
Serilog.ILogger logger = new AppLogger(builder.Configuration).Logger;
builder.Logging.AddSerilog(logger, true);
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment() || app.Environment.IsProduction())
{
app.UseSwagger();
app.UseSwaggerUI();
}
//app.UseHttpsRedirection();
app.UseAuthentication();
app.UseAuthorization();
app.UseCors();
app.UseWebSockets();
app.MapControllers();
app.MapHub<FacilityHub>("/facility-hub");
app.Run();
字符串
我运行了以下命令,查看应用程序在发布模式下运行时的日志。
npx react-native log-android
npx react-native run-android --mode release
这里是日志中的错误时,移动的应用程序运行是释放模式。x1c 0d1x
这里是日志中的错误时,移动的应用程序运行是调试模式。
1条答案
按热度按时间wvt8vs2t1#
在Release模式下,Android对不安全的http请求有限制。我们只需要在配置文件中添加一些配置。
AndroidManifest.xml文件:
1.确保您已添加使用网络的权限。
字符串
1.在应用程序标记中设置以下属性:
型
1.如果你想在本机代码中使用已弃用的HttpClient来发送http请求,你需要添加以下标签:
型
相关链接:Behavior changes: apps targeting API level 28+