在iis上发布Angular应用程序-仅在iis端出现错误



我在visualstudio中创建了application.net 3.0+Angular 8。然后我把angular调高到了ver.10。当我在本地运行应用程序时,一切都很好,但当我在iis上发布它时,我得到了这个错误:

没有这样的文件或目录,打开"C:\Websites\App\ClientApp\package.json">

我已更改Startup.cs

services.AddSpaStaticFiles(配置=>{配置根路径=";ClientApp/dist/App";;});

但这没有帮助。

ver8在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

感谢的帮助

您的.NET服务器可能在Development模式下运行,因此它尝试运行Angular服务器,而不是查看已构建的Angular项目;因此,它正在寻找一个package.json以便运行npm start脚本。

使用cmd中的以下命令(或使用GUI(,将ASPNETCORE_ENVIRONMENT环境变量设置为Production(或Development以外的任何其他值,具体取决于您的需要(:

setx ASPNETCORE_ENVIRONMENT "Production"

然后再次运行您发布的应用程序,它不应该再尝试查找package.json了。

首先,您需要检查"C:\Websites\App\ClientApp\package.json"是否存在。在本地运行应用程序或在IIS上运行,路径可能不同,因为它不是完整路径。因此,如果"C:\Websites\App\ClientApp\package.json"不存在,则需要将您的packsage.json添加到路径C:WebsitesAppClientApp中。

最新更新