Arhn - архитектура программирования

Запуск простого приложения ASP.NET Core с IIS, дающим пустую страницу

Я создал простое веб-приложение ASP.NET Core со следующими шагами:

Создан пустой шаблон основного проекта ASP.NET:

введите здесь описание изображения

введите здесь описание изображения

Добавлена ​​папка wwwroot со страницей index.html.

введите здесь описание изображения

Startup.cs довольно стандартный с добавлением всего одной дополнительной строки:

приложение.UseDefaultFiles();

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace WebApplication1
{
    public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseDefaultFiles();

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

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("Hello World!");
                });
            });
        }
    }
}

Создайте решение и укажите мой веб-сайт IIS в корень веб-проекта:

введите здесь описание изображения

Все вижу пустую страницу при запуске сайта через IIS (ошибки консоли нет, разрешения уже дают в корень решения):

введите здесь описание изображения

Я ожидал, что вывод index.html появится в корне URL-адреса приложения. Есть ли что-то особенное, что нужно сделать для основного проекта ASP.NET, чтобы он работал через IIS?

Я также хотел бы выполнить отладку, подключив процесс IIS в Visual Studio для данного сайта?

Можете ли вы поделиться, что мне там не хватает?

Те же шаги, похоже, работают с платформой ASP.NET. Я не хочу выполнять команду «Выполнить» в VS и запускать сайт на локальном хосте, моя цель — запустить сайт с помощью IIS/с допустимым URL-адресом, чтобы я мог отлаживать слишком напрямую, присоединив процесс к решению Visual Studio.

12.05.2020

Ответы:


1

Просто несколько мыслей.

  1. Запуск его в VS «либо» будет использовать IIS Express, либо сам IIS, в зависимости от ваших настроек. Таким образом, вы можете легко выполнить развертывание в IIS и фактически отладить его напрямую (имеется в виду, что он работает там), если вы выберете IIS.

  2. Вы можете подключить np, подключившись к своему сайту IIS с помощью Edge/Chrome, а затем в своем VS выберите Debug\Attach To Process, и вам просто нужно точно знать, какой процесс. Теперь, если он находится на другом сервере, вам нужно настроить удаленную отладку и установить ее на этом компьютере, а также правильно открыть для нее порты и т. д.

Вы должны подумать о том, чтобы изначально отделить отладку (время разработки) от необходимости удаленной отладки (производства/тестирования), потому что это сэкономит вам много времени.

Что касается вашего вопроса, конкретно 2 вещи

  1. Я бы использовал app.UseFileServer();, потому что он ставит оба app.UseDefaultFiles app.UseStaticFiles в правильном порядке и т. д.

против app.UseDefaultFiles(); в одиночку

  1. Выньте материал Hello world. Я считаю, что это блокирует вас (но сначала сделайте № 1)

наконец, вам может потребоваться установить пакет NuGet Microsoft.AspNetCore.StaticFiles.

Ваше здоровье,

12.05.2020

2

Чтобы разместить сайт .net в iis, сначала вам нужно опубликовать его из визуальной студии, а затем указать эту папку публикации как путь к папке сайта iis.

для запуска сайта .net core необходимо установить пакет хостинга .NET Core и среду выполнения ASP.NET Core.

Загрузите и установите пакет среды выполнения и хостинга в соответствии с вашей версией.

https://dotnet.microsoft.com/download/dotnet-core/3.1

другое дело, вам нужно использовать app.UseStaticFiles(); для сервера индексного файла.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseDefaultFiles();


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

        app.UseStaticFiles();

        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGet("/", async context =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        });
    }

вы можете перейти по ссылке ниже для более подробной информации о том, как разместить основное приложение .net в iis:

https://docs.microsoft.com/en-us/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-3.1

Редактировать:

Чтобы подключить рабочий процесс iis в Visual Studio, вы можете выполнить следующие шаги:

1) запустите свой сайт из iis.

2) перейдите на узел сервера в iis, дважды щелкните рабочий процесс на средней панели.

введите здесь описание изображения

вы найдете идентификатор процесса вашего сайта, обратите внимание на это.

введите здесь описание изображения

3) открыть визуальную студию от имени администратора

4) откройте свой проект.

5) отладка-> прикрепить к процессу

введите здесь описание изображения

6) установите флажок «Показать процессы от всех пользователей», выберите w3wp.exe. Вы можете искать свой процесс по идентификатору процесса.

введите здесь описание изображения

7) нажмите прикрепить.

13.05.2020
  • Моя цель — отладить его через IIS ›› Прикрепить процесс в Visual Studio. 13.05.2020
  • Спасибо за ответ. Завтра проверю и вернусь к этому. 14.05.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..