ASP.NET Core Webservice как локальный функционал, но в IIS выдает ошибку 404 Not Found - PullRequest
0 голосов
/ 26 марта 2019

У меня проблема с моей основной веб-службой ASP.NET.

Мне понадобился JWT для аутентификации в моем проекте Angular.Вот почему я сделал сервис, где пользователь должен быть проверен, если он авторизован.Я сделал это с .NET Core, потому что у меня есть IIS Server.

Когда я запускаю его локально с помощью "dotnet run", я могу делать запросы get или put локально.Я также проверил это в плагине YARC Google Chrome, сделав запрос POST с полезной нагрузкой (JSON с 2 парами ключ-значение).

Я загрузил службу в IIS Server, запустил ее, дал URL (на этот раз с доменом сервера, на котором расположен IIS) на плагине YARC на моей локальной машине снова для запроса POST с той же полезной нагрузкой.Это дает мне 404-Not Found Error.

Функциональный локальный URL-адрес: http://localhost:5000/api/auth/login

URL-адрес для IIS: http://myIISMachine:7471/api/auth/login (номер порта также указан в файле launchSettings.json)

ConfigureServicesфункция в моем файле Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
    {
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true,
        ValidateAudience = true,
        ValidateLifetime = true,
        ValidateIssuerSigningKey = true,

        ValidIssuer = "http://localhost:5000",
        ValidAudience = "http://localhost:5000",
        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("MySecretKey"))
    };
});

services.AddCors(options =>
{
    options.AddPolicy("EnableCORS", builder =>
    {
        builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials().Build();
    });
});

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

и настройка функции:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseHsts();
        }

        app.UseCors("EnableCORS");

        app.UseAuthentication();

        //app.UseHttpsRedirection();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "api/{controller=Home}/{action=Index}/{id?}");
        });
    }

файл launchSettings.json:

{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false, 
"anonymousAuthentication": true, 
"iisExpress": {
  "applicationUrl": "http://localhost:7471",
  "sslPort": 44365
}
},
"profiles": {
 "IIS Express": {
  "commandName": "IISExpress",
  "launchBrowser": true,
  "launchUrl": "api/values",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
},
"webapplication": {
  "commandName": "Project",
  "launchBrowser": true,
  "launchUrl": "api/values",
  "applicationUrl": "https://localhost:5001;http://localhost:5000",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
}
}
}

Что я делаю здесь неправильно?Или, может быть, это связано с настройками сервера IIS?Не могли бы вы помочь мне, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...