• ASP.Net Core 发布ABP项目遇到的错误


    1、HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效。

    与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等)。而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中,所以这时候我们无需设置应用程序池来托管我们的代码,它只负责转发请求而已。

    部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块,如果没有的话,点击这里进行下载并安装

    2、'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。

    最近在使用asp.net core的时候,采用take().skip()分页的时候报如下错误:
    SqlException: 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
    这个主要是在sql server 2008中,不支持FETCH和NEXT语句(sql server 2012才支持)。
    之后在网上参考了一下其他的文章,最终解决了这个问题,记录一下,方便后来人。
    解决方法:
    修改“StartUp.cs”文件,具体代码截图如下:
    1.普通修改方式
    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
      // Add framework services.
      services.AddMvc();
     
      var connection = @"Data Source=tcp:111.111.111.111,1044;
      Initial Catalog=xxx;Persist Security Info=True;User ID=xxxx;Password=xxxxx";
      services.AddDbContext<NoteContext>(options => options.UseSqlServer(connection,b=>b.UseRowNumberForPaging()));
     
      services.AddScoped<Repository.INoteRepository,Repository.NoteRepository>();
      services.AddScoped<Repository.INoteTypeRepository, Repository.NoteTypeRepository>();
    }
     
    2.abp修改方式
    public static class DbContextOptionsConfigurer
    {
      public static void Configure(DbContextOptionsBuilder<SSODbContext> dbContextOptions,string connectionString)
      {
        /* This is the single point to configure DbContextOptions for testDbContext */
        dbContextOptions.UseSqlServer(connectionString ,b => b.UseRowNumberForPaging());
      }
    }

    3、异常详细信息: System.Data.SqlClient.SqlException:用户 'IIS APPPOOLDefaultAppPool' 登录失败解决办法

    看了很多关于这个错误的解决方法, 一般来说是对sql server 2005(2008) management studio

    图例也有,但是和我的2008 r2 不一样....

    最终找到方法:我们在配置网站的时候在应用程序池里, 选择高级配置 里面的标识改为 LocalSystem 如果数据库是本地的就可以了......

    4、405.0 - Method Not Allowed

    WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝、移动、删除等。在IIS 7.0中,WebDAV是作为独立扩展模块,需要单独进行下载,而IIS 7.5中将集成WebDAV,然而WebDav把Put,Delete给咔嚓了。所以在IIS 7.5上部署的RESTful服务(WCF Data Service,WCF Rest Service,ASP.NET Web API,ASP.NET MVC)就悲剧了,当发送Put请求就会发生HTTP Error 405.0 – Method  Not Allowed错误,解决方法也很简单,在Web.config里面加入如下设置:

    <system.webServer>
      <modules>
        <remove name="WebDAVModule" />
      </modules>
      <handlers>
        <remove name="WebDAV" />
      </handlers>
    </system.webServer>

  • 相关阅读:
    mysql复习
    常用函数
    contos7上安装rabbitmq
    linux笔试题
    发布脚本
    Arch最小化安装LXDE桌面环境
    Arch最小化安装X
    Arch安装详解
    Gentoo解决Windows双系统时间不同步的问题
    Gentoo安装详解(五)-- 安装X桌面环境
  • 原文地址:https://www.cnblogs.com/cb521413/p/8743620.html
Copyright © 2020-2023  润新知