错误1:System.Data.SqlClient.SqlException (0x80131904): 用户 'IIS APPPOOL\WindowsPublishDemo_API' 登录失败。 这是一个应用程序权限问题,需要修改应用程序池标识 ApplicationPoolIdentity 改为对数据库有访问权限和网站文件有读写权限的 Windows 用户(这里需要确定这个 Windows 用户可以登录数据库,不行可以在数据库安全设置添加,当然你也可以将数据库连接字符改为数据库用户和密码访问,比如:sa),然后重启应用池,重新浏览网站。
错误2:Failed to load http://localhost:21021//swagger/v1/swagger.json: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://xxx.xxx.com' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. 这个需要修改“ appsettings.json ”文件中 App 节点还是本地本地的 URL,改成线上 URL 就可以了,修改后重新启动网站。
如果是多域名的话可按以下配置:
环境
本地:Windows 10、SQL Server 2017 服务器:Windows Server 2008 R2、SQL Server 2008 R2 在这种环境下,本地运行一般是没有任何问题的,一旦发布到服务器上运行往往会出现一些问题,这篇文章的主要目的就是记录解决这些问题的方法和思路。
准备
模板下载:https://aspnetboilerplate.com/Templates
ASP.NET Core 项目:
Update-Database
指令来创建你的数据库(确保程序包管理控制台中的默认项目选择的是“ xxx.EntityFrameworkCore ”);Vue 项目:
yarn install
还原 npm 包(Yarn 工具下载地址:https://yarnpkg.com/en/docs/install);npm run serve
运行程序。ASP.NET Core 部署
cd
到站点根目录,运行dotnet xxx.Migrator.dll
,输入y
确认迁移,成功后回车退出。System.Data.SqlClient.SqlException (0x80131904): 用户 'IIS APPPOOL\WindowsPublishDemo_API' 登录失败。
这是一个应用程序权限问题,需要修改应用程序池标识 ApplicationPoolIdentity 改为对数据库有访问权限和网站文件有读写权限的 Windows 用户(这里需要确定这个 Windows 用户可以登录数据库,不行可以在数据库安全设置添加,当然你也可以将数据库连接字符改为数据库用户和密码访问,比如:sa),然后重启应用池,重新浏览网站。错误2:
Failed to load http://localhost:21021//swagger/v1/swagger.json: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://xxx.xxx.com' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
这个需要修改“ appsettings.json ”文件中 App 节点还是本地本地的 URL,改成线上 URL 就可以了,修改后重新启动网站。 如果是多域名的话可按以下配置:错误3:
System.Data.SqlClient.SqlException (0x80131904): 'OFFSET' 附近有语法错误。
这个错误主要是数据库不支持FETCH和NEXT语句(SQL Server 2012 以上才支持)。最新的 ABP 默认支持的是 SQL Server 2012 以上的版本,对于之前的版本,需要修改“ xxx.EntityFrameworkCore ”下的“ xxxDbContextConfigurer.cs ”文件重新编译部署到服务器。
405 (Method Not Allowed)
这个错误需要在 web.config 文件中 system.webServer 节点加入以下内容修改后重新启动网站。
Vue 部署
npm run build
,把生成的 dist 目录的文件上传到服务器,并添加 Vue 站点浏览网站,测试检查是否存在问题并修复(用 Chrome 浏览器查看错误信息)
ERR_ABORTED 404 (Not Found)
这个错误是这个路径找不到对应文件,对应的文件都在站点根目录里面了,修复这个问题首先创建 dist 目录,并把丢失的文件移至该目录下就可以了。