Net6 Core Api发布到IIS不同于webapi,依赖框架不同,配置也移至项目内Program.cs

一、发布到指定文件夹,和IIS,不过注意IIS应用程序池选择的是 “无托管代码“

访问接口路径报500.19,原因是所依赖的框架不同,需要下载安装指定的依赖环境(查看第二点)

二、查看项目框架和下载,

下载地址

https://dotnet.microsoft.com/download/dotnet

我这里使用的是.Net6.0,要下载高于此版本的环境

点击你要下载的版本

下载了对应位数的安装

下载完成后可以在控制面板-程序和功能看到

此时运行可能还会报404

需要到发布文件下修改web.config文件(这步有时候需要有时候不需要)

<aspNetCore processPath="dotnet" arguments=".\Signin.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
  <environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

成功访问

执行点击登录后可能会出现下面错误

如果出现下面这个错误就是因为没有执行上步修改webconfig文件(修改后这个错误就没了)

出现错误2

原因:其实就是说明我们这个网站需要认证了才能访问

解决:

查看该网页使用的是什么身份认证(默认是匿名身份验证)

发现是启用的是匿名身份验证

匿名身份验证表示不需要登录都可以访问

右键编辑发现他选择的特定用户是IUSR

查看IUSR是否有权限(右击这个网页编辑权限)

查看并没有这个用户

解决一: 我们可以让他和应用程序池使用同一个用户

点击发布网页=》打开身份验证=》右键匿名身份验证编辑

选择应用池标志按钮

查看应用程序池使用的用户是哪个

标识其实就是用户

再次浏览发现还是不行

那么修改一下程序池的用户,改一个级别高的

选择localsystem,这个权限很高的

再次刷新网页进行浏览

此时本地又报一个新错

错误信息

An unhandled exception occurred while processing the request.
SqlException: 无法打开登录所请求的数据库 "ProgramTest"。登录失败。
用户 'NT AUTHORITY\SYSTEM' 登录失败。
InvalidOperationException: An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure' to the 'UseSqlServer' call.

问题出现原因:

无法打开登录所请求的数据库 “xxxxxx”。登录失败。
用户 'IIS APPPOOL\xxxxxxxxxxxx 登录失败。

或者这样的错误信息:

异常详细信息: System.Data.SqlClient.SqlException: 用户 ‘IIS APPPOOL\xxxxxxxx’ 登录失败。

在Visual Studio 2010调试模式下,没有问题,配置到IIS就出错.原因是权限问题.

在IIS中默认是不允许window集成登录的,改为帐号密码登录就没有问题了,服务器名最好填写ip地址/实例名这样的格式,以免报错.

1.若应用程序的连接字符串是windows集成登录 ,将其改成用户名密码登录
所以将连接字符串改为使用用户名登录即可

    //"SystemCenterProject": "Data Source=.;Initial Catalog=ProgramTest;Integrated Security=True;TrustServerCertificate=true",
"SystemCenterProject": "Data Source=.;Initial Catalog=ProgramTest;User ID=sa;Pwd=123456;TrustServerCertificate=true"

连接字符串并且必须加‘TrustServerCertificate=true’,否则会报错

Microsoft.Data.SqlClient.SqlException 证书链是由不受信任的颁发机构颁发的 - 知乎 (zhihu.com)

发布网页运行成功,并且登录成功

解决二: 使用特定用户账号  (不做参考-不正确可能)

不使用应用程序池的用户。

选择特定用户

编辑用户名为IUSR

将相应程序池设置成原先默认的

程序池标识改为原先默认

确定后,点击相应应用程序池回收

网站重新启动,然后浏览

最新文章

  1. 如何自定义jupyter notebook的主题
  2. 初学c# -- 学习笔记(八)
  3. IOS竖屏应用单个页面横屏的解决办法
  4. Java基础之写文件——使用多个视图缓冲区(PrimesToFile2)
  5. CDN学习笔记二(技术详解)
  6. solr query的post方式
  7. 【安卓开发】Android系统中Parcelable和Serializable的区别
  8. jmeter的安装和配置
  9. 目标检测算法之YOLOv3
  10. 多AG自动生成apk说明
  11. zlib交叉编译
  12. Tomcat禁用SSLv3和RC4算法
  13. HDOJ 2004 成绩转换
  14. 20155205 2016-2017-2 《Java程序设计》第6周学习总结
  15. 初步理解Python进程的信号通讯
  16. mongodb:修改oplog.rs 的大小size
  17. PowerDesigner 同名问题解决 Entity Attribute name uniqueness
  18. zw版【转发&#183;台湾nvp系列Delphi例程】HALCON HistoToThresh1
  19. Xshell6远程访问linux及Xftp6远程针对linux系统中文件操作(附图文详解)
  20. 实验 使用 vivado zedboard GPIO 开关 开控制 LED

热门文章

  1. 《MySQL必知必会》之快速入门存储过程
  2. Jmeter 之在linux中监控Memory、CPU、I/O资源等操作方法
  3. 可视化—AntV G6 高亮相邻节点的两种方式
  4. 解决多次重连rabbitMQ失败
  5. SPOJLCMSUM - LCM Sum
  6. Linux 查找某一线程是否已运行,并启动的方法
  7. windows安装wordcloud遇到的坑汇总
  8. 多行文字自动换行居中--实测好用的很OK
  9. .Net 7 托管Main入口的四种类型
  10. JSP第二次作业