Jexus System.MissingMethodException: Method 'System.Web.Hosting.HostingEnvironment.set_IsHosted' not found 报错的解决

看到大家都尝试Jexus以及dotnetcore,再加上新租了腾讯云的centos linux云服务器,决定要把公司比较简单的提供升级下载的网站部署到linux下试一下。

按照ASP.NET跨平台实践:无需安装Mono的Jexus“独立版” 的方法安装好Jexus 。

部署网站,访问网站时下出现错误
System.MissingMethodException: Method ‘System.Web.Hosting.HostingEnvironment.set_IsHosted‘ not found.

按照“宇内流云”说的“windows dll最少化”原则精简dll。

[quote]
找不到 “set_IsHosted”,是因为你网站bin文件夹中有Windows上的System.Web.dll造成的。
将VS生成的web应用程序放到Linux上运行,要特别小心的就是bin文件夹中的dll。因为,VS是针对windows的,它不会考虑你是否在Linux上运行,所以,它带的dll,常有不兼容情况发生,这就是大家最容易遇上的不是坑的坑。
处理办法是:bin文件夹中的“windows dll最少化”!
意思就是,mono已经自带了的dll(见/usr/lib/moo/gac或jexus的runtime/lib/mono/gac),那就一定不要用win上带...[/quote]

精简后访问网站时报错:

The view must derive from WebViewPage, or WebViewPage<TModel>. (The view at ‘~/Views/home/index.cshtml’ must derive from WebViewPage, or WebViewPage<TModel>

经过各种增减引用dll及上网查找原因,最终发现是Web.config引用dll的问题(包括网站根目录下的Web.config以及Views目录下的Web.config)

经过精简后的网站根目录Web.config内容如下:

<?xml version="1.0"?>
<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  http://go.microsoft.com/fwlink/?LinkId=301880
  -->
<configuration>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0"/>
    <add key="webpages:Enabled" value="false"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  </appSettings>
  <!--
    有关 web.config 更改的说明,请参见 http://go.microsoft.com/fwlink/?LinkId=235367。

    可在 <httpRuntime> 标记上设置以下特性。
      <system.Web>
        <httpRuntime targetFramework="4.5" />
      </system.Web>
  -->
  <system.web>
    <compilation targetFramework="4.5.1"/>
    <httpRuntime targetFramework="4.5.1"/>
  </system.web>
  <system.web>
        <customErrors mode="on"/>
    </system.web>
</configuration>

经过精简后的Views目录下的Web.config内容如下:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,
                  System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor,
               Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor,
               Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage" ></pages>
  </system.web.webPages.razor>
</configuration>

经过精简后Bin目录下的dll如下:(NPOI、ICSharpCode、itextsharp、log4net、Newtonsoft.Json是因为这个项目需要才引用的dll,如果是空白项目这几个dll也不需要)

  

重启jexus后,终于看到网站访问正常的界面了!

Jexus System.MissingMethodException: Method 'System.Web.Hosting.HostingEnvironment.set_IsHosted' not found 报错的解决

时间: 2024-10-19 08:19:54

Jexus System.MissingMethodException: Method 'System.Web.Hosting.HostingEnvironment.set_IsHosted' not found 报错的解决的相关文章

从svn下载web项目,一启动就报错

从svn下载web项目,一启动就报xxx类找不到,但是这个类确实存在项目中,其它同事也用这个项目却可以用.为什么我的不能用呢? 最后发现原来项目编译目录不是class目录而是bin目录.项目截图如下 : 将红色框出来路径替换成WEB-INF/classes即可 从svn下载web项目,一启动就报错

Eclipse下Maven新建Web项目index.jsp报错完美解决(war包)

Eclipse下Maven新建Web项目步骤 1. 2. 3. 4. 5. 问题描述 最近用eclipse新建了一个maven项目,结果刚新建完成index.jsp页面就报错了,先把错误信息贴出来看看! 解决方法 第一种:直接在pom.xml文件中添加jar包支持 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <

HBase 2.1.3 集群 web 报错InvalidProtocolBufferException 解决方法

搭建好HBase 集群后,各种后台进程都正常,搭建手册参考: Hbase 2.1.3 集群搭建手册https://www.cndba.cn/dave/article/3322 但是通过web访问,却报如下错误: 2019-03-05 23:13:49,508 WARN [qtp1911600942-82] servlet.ServletHandler: /master-status java.lang.IllegalArgumentException: org.apache.hbase.thir

MyEclipse中复制web项目,部署之后访问报错

原文地址:https://www.cnblogs.com/chuijingjing/p/9838413.html

MyEclipse和Eclipse 编译错误 web项目中的 js,jsp报错 更改

搜索   validation   语法检测 必须 选定一个  不然不编译 原文地址:https://www.cnblogs.com/wzj1992/p/9991813.html

dubbo分布式框架下web层调用业务层一直报空指针异常的解决办法

java.lang.NullPointerException............... 环境:SSM(通用mapper)+Dubbo 1.检查导包 提示注解@Reference  应该导入  import com.alibaba.dubbo.config.annotation.Reference;    @Service 应该导入  import com.alibaba.dubbo.config.annotation.Service; 2.检查 maven工程的业务层(service层) 是

Maven新建web项目jsp报错

新建Maven web项目后jsp页面会报错.以下给出两种解决方案: 一.导入javax.servlet.http.HttpServlet.jar依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</

异常详细信息: System.Web.Hosting.HostingEnvironmentException: 访问 IIS 元数据库失败 解决方法

访问IIS元数据库失败 同理,给操作系统的新建用户赋予IIS操作权限同样可以采用该命令来处理 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Web.Hosting.HostingEnvironmentException: 访问 IIS 元数据库失败. 用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库(如 IIS://servername/W3SVC)的读访问权.有关如何

PatentTips - System and method to deprivilege components of a virtual machine monitor

BACKGROUND INFORMATION An embodiment of the present invention relates generally to virtualization platforms and, more specifically, to a system and method to run components of a virtual machine monitor at a reduced privilege level. Various mechanisms