OData 7.4.0-beta2 не работает с .NetCore 3.1 с SSL - PullRequest
0 голосов
/ 17 апреля 2020

Я решил проблему с OData и .NetCore 3.1 .

Теперь проблема в SSL и .NetCore. Я не могу достичь конечной точки с одним https, конечная точка http работает нормально. В чем может быть проблема?


Решено : У меня проблемы с OData при использовании .NetCore 3.1. Я посмотрел на примеры кодов, дополнительные фрагменты, которые «исправляют» проблемы. API компилируется без ошибок. Однако мне не удалось заставить работать OData, даже конечную точку "/ $ metadata". Я не знаю, что делать дальше, мне не хватает точки?

.NetCore версия: 3.1 Версия OData: 7.4.0-beta2 EF Core версия: 3.1.3

    public void ConfigureServices(IServiceCollection services)
    {
        ConfigureAuthentication(services);
        ConfigureLogging(services);

        //Add other services
        var connection = aCtx.DbConnections.Find(x => x.Key == "IVS_EVENT");
        services.AddDbContext<IVS_EVENTContext>(options => options.UseSqlServer(connection.Value));

        services.Configure<IISOptions>(options =>
        {
            options.ForwardClientCertificate = false;
            options.AutomaticAuthentication = true;
        });

        services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
        {
            builder.AllowAnyOrigin()
                   .AllowAnyMethod()
                   .AllowAnyHeader();
        }));

        services.AddOData();
        services.AddODataQueryFilter();

        services.AddMvc(options =>
        {
            options.RespectBrowserAcceptHeader = true; // false by default
            options.Filters.Add(new LoggingExceptionFilterAttribute());
            options.Filters.Add(new LoggingActionFilterAttribute());
        }).AddNewtonsoftJson();

        services.AddControllers(mvcOptions =>
            mvcOptions.EnableEndpointRouting = false).AddNewtonsoftJson();           
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        var builder = new ODataConventionModelBuilder();

        var sendStatusTypeEntity = builder.EntitySet<SendStatusType>("SendStatusTypes");
        sendStatusTypeEntity.EntityType.HasKey(e => e.Id);

        app.UseRouting();
        app.UseODataBatching();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
            endpoints.Select().Filter().OrderBy().Count().MaxTop(null).Expand();
            endpoints.MapODataRoute("event", "api", builder.GetEdmModel());
        });

        if (env.IsDevelopment())
        {
            //GenerateTypeScriptModels();
            app.UseDeveloperExceptionPage();
        }

        app.UseCors("CorsPolicy");
        app.UseAuthentication();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...