【摘要】 1.发布.net core程序 2.打开iis,添加网站,选端口的时候不要冲突,并为其添加程序池 3.对网站的高级设置:
需要给权限,在右边“操作”的“编辑权限”,点“编辑”,添加一个新的角色,名称是everyone,然后给其权限,权限给“完全控制” 对于程序池,如果是.net core程序,则不需要托管,选择无托管模式,点“基本设置”,iis应用程序池的“高级设置”…
1.发布.net core程序
2.打开iis,添加网站,选端口的时候不要冲突,并为其添加程序池
3.对网站的高级设置:
- 需要给权限,在右边“操作”的“编辑权限”,点“编辑”,添加一个新的角色,名称是everyone,然后给其权限,权限给“完全控制”
- 对于程序池,如果是.net core程序,则不需要托管,选择无托管模式,点“基本设置”,iis应用程序池的“高级设置”里的“标识设置”为”ApplicationPoolIdentify”(比较安全)
4.这里是重点了,这个时候会报数据库缺少实例,怎么解决?
建立一个基于xx的共享实例即可,具体基于什么实例,要看你用的什么实例,可以在cmd
中输入SqlLocalDB.exe i
中查询 - 打开cmd
- 依次输入
SqlLocalDB.exe stop “MSSQLLocalDB” 目的:停止实例
SqlLocalDB.exe share “MSSQLLocalDB” “shareInstanceName” 目的:建立共享实例,后面一个”shareInstanceName”是自己随便取的共享实例名
SqlLocalDB.exe start “.\InstanceName” 这个可有可无
注意:建立共享实例后,其实生成的实例是.\共享实例名
,会自带.\
,所以后面用这个共享实例连接字符串,连接数据库都有点不同
- 创建好共享实例后,就需要更改数据库连接字符串了,格式为:
DateSource=(LocalDb)\.\shareInstanceName(这个是共享实例名),等等(后面的数据库名字什么的)
- 接着需要迁移数据库,更新数据库,然后重新发布
- 打开sqlsever管理,在
服务器名称
里输入共享实例名,范例:(localdb)\.\实例名
(注意共享实例的数据源名称格式比普通实例中间多了个点)
- 以共享实例名为服务器名,登录数据库
- 选择”安全性”—-“登录名”—-右键——“新建登录名”,在”常规”选项卡中的使用 IIS APPPOOl\应用程序池名称 作为登录名,选择 “Windows身份验证”,在默认数据库中选择需要的数据库,在”服务器角色”选项卡中勾选”public”和”dbcreator”,在“映射”里选择对应数据库的映射,然后以相同的方法再新建一个登录名:NT AUTHORITY\SYSTEM,其他的一模一样
注意:到创建角色名这一步,很有可能角色名无法创建,这个时候需要关闭数据库,重新打开,再次创建,如果又不能,可以关闭又打开,或者重启
以上就是部署的具体过程,还有一些补充
1.如果发生错误,无法看见错误信息怎么办?在发布的文件夹里找到
webconfig
添加这一段:
<aspNetCore processPath="dotnet" arguments=".\dingdingH5.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" >
<environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables>
</aspNetCore >
2.在发布时,一定要断开网站,不然无法发布
3.部署成功后,如果想要访问,则要保证数据库已经按实例名登录,以及网站和服务已经开启
4.如果要在外网访问,则可以用花生壳
软件来穿透内网,需要注意的是,这个软件要一直开启,只要一关闭,外网就访问不了惹
文章来源: blog.csdn.net,作者:研渡,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_50233101/article/details/116904542
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END