• .net core 部署到 iis 步骤及报错解决方法


    我写了一个Asp.net core mvc项目,但是部署在iis发生了502.5的问题一直解决不了。

    环境

    系统:最强Win10;

    工具:轻巧VS Code;

    各种百度bing都没有我要的解决方案,说的都是

    1. 保证电脑上有.net core sdk或者.net core runtime;

    2. 需要安装AspNetCoreModule托管模块:DotNetCore.2.0.5-WindowsHosting.exe

    3. 上面的托管模块安装成之后需要重启电脑,或者使用命令行。

    net stop was /y
    net start w3svc
    
    1. 发布项目,这是时候要注意权限。我发布的方式一直都是用dotnet cli 的dotnet publish命令,如果第一次发布会报权限不足的问题,然后我就会把publish文件夹的权限做一下处理。

    2. iis创建网站,然后把路径绑定到publish文件夹。

    3. 编辑应用程序池,把.net clr版本设置为无托管代码。


    搜到的结果基本上和这个都差不多,但是和我的情况都不一样,哎呀我这个小脾气。

    重新创建了一个.net core mvc项目发布,我靠!竟然能访问,但是原来的项目还是不能访问。

    于是查看了一下windows日志

    • 用cortana打开事件查看器
    • Windows日志
    • 应用程序
    • 重新运行一下网站

    嘿嘿~果然有几个错误日志,ErrorCode:0x80004005 : 8000808c

    Bing了一下,大概意思是可能有版本问题(大概是因为我电脑里装了好几个.net core sdk或.net core runtime了吧)

    重点!重点!重点!

    就我这个English level竟然在stackoverflow上找到了解决方案。

    在项目文件中添加一句话

    <PropertyGroup>
        <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
    </PropertyGroup>
    

    然后publish文件夹中多了好多文件夹,重新运行网站,哎呀 这个骚浪贱竟然好用了。

    仔细看了看,应该是发布的时候把运行时包含在发布文件夹里了吧,这样也许就不会有版本问题了吧。(不知道对不对,有大神看见的话请指教:))

  • 相关阅读:
    vector在堆上还是在栈上(等待自己慢慢领悟吧)
    函数指针遇到typedef
    回调函数的代码示例
    _T和_L的区别
    MFC打开文件夹对话框
    C++中的抽象类和接口类
    UML图中继承和实现的区别
    扩展点(ExtensionPoint)
    组播(又称多播)是个好东西
    C++代码实现组播及归纳的流程图
  • 原文地址:https://www.cnblogs.com/hoyu/p/8514243.html
Copyright © 2020-2023  润新知