Публикация приложения Angular на iis - ошибка только на стороне iis

Я создал приложение .net 3.0 + Angular 8 в Visual Studio. Затем я обновил angular до ver. 10. Когда я запускаю приложение локально, все в порядке, но когда я публикую его в iis, я получил эту ошибку:

нет такого файла или каталога, откройте 'C: \ Websites \ App \ ClientApp \ package.json'

Я изменил Startup.cs

services.AddSpaStaticFiles (конфигурация = ›{configuration.RootPath = ClientApp / dist / App;});

но это не поможет.

Версия 8 работала на iis без каких-либо проблем.

мой packsage.json

 "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "build:ssr": "ng run App:server:dev",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

Редактировать с помощью @Yiyi Ты помогаешь мне двигаться дальше. Теперь я получил эту ошибку

The error output was: The serve command requires to be run in an Angular project, but a project definition could not be found.

Я обновил все (angular, node и т. Д.), Добавил переменную npm в PATH, скопировал package.json и node_module в проект, добавил разрешение на app_pool

Спасибо за помощь


person Xia    schedule 21.08.2020    source источник


Ответы (1)


Во-первых, вам нужно проверить, существует ли C: \ Websites \ App \ ClientApp \ package.json. Запустите приложение локально или на IIS, путь может быть другим, потому что это не полный путь. Итак, если 'C: \ Веб-сайты \ App \ ClientApp \ package.json 'не существует, вам нужно добавить свой packsage.json в путь C:\Websites\App\ClientApp.

person Yiyi You    schedule 21.08.2020
comment
Локально все работает. Я постараюсь, спасибо! Но я не понимаю, почему у меня эта ошибка на стороне iis. Раньше (я думаю) в этом месте тоже не было package.json (на iis). - person Xia; 21.08.2020
comment
Относительный путь зависит от текущего местоположения вашего проекта. Таким образом, если локально у вас может быть packsage.json где-то в вашем локальном проекте. А при публикации путь зависит от местоположения проекта публикации, поэтому у него может не быть packsage.json в ваш проект публикации где-нибудь. - person Yiyi You; 21.08.2020
comment
хорошо, так мне нужен package.json на стороне iis? Проблема с публикацией? - person Xia; 21.08.2020
comment
Я думаю, вам это нужно. При публикации, если вы используете статический файл локально, и это не полный путь, вам часто нужно поместить файл где-нибудь в папку публикации. - person Yiyi You; 21.08.2020
comment
Может быть. Но почему до обновления Angular он работал правильно? - person Xia; 21.08.2020
comment
Думаю, это может быть необходимо angular. Вы можете обратиться к this .The packages listed in the dependencies section of package.json are essential to running applications. - person Yiyi You; 21.08.2020
comment
хорошо, теперь у меня была ошибка: 'ng' не распознается как внутренняя или внешняя команда, но я установил Angular / cli: / Все еще не понимаю, почему после обновления angular возникает так много проблем - person Xia; 21.08.2020
comment
Вы можете попробовать это - person Yiyi You; 21.08.2020