当前位置: 首页 > news >正文

CodebehindCodeFile

今天同事在把一个Web项目从 Web Site 升级成 Web Application 应用后部署的时候,报错:

Server Error in '/' Application.
--------------------------------------------------------------------------------
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: The file '/index.aspx.cs' does not exist.
Source Error:
Line 1: <%@ Page Language="C#" AutoEventWireup="true" CodeFile ="index.aspx.cs" Inherits="Community.IndexHomePage.index" %>
Line 2:

原因就是不知道为啥,采用系统升级工具,没有把这个Web Page 的 CodeFile 变成 CodeBehind 。
而且仅仅只是这一个页面没升级,其他页面都升级了。
再加上这两个属性都是 Code 开头的,一不留神,就会觉得一个属性。结果忙活了一回。

CodeFile 与 CodeBehind 在使用上是有很大区别的

先看 MSDN 上的说明:

CodeBehind
指定包含与页关联的类的已编译文件的名称。该属性不能在运行时使用。提供此属性是为了与以前版本 的ASP.NET的兼容,以实现代码隐藏功能。在ASP.NET2.0版中,应改用CodeFile属性指定该源文件的名称,同时使 用Inherits属性指定该类的完全限定名称。
CodeFile
指定指向页引用的代码隐藏文件的路径。此属性与 Inherits 属性一起使用可以将代码隐藏源文件与网页相关联。此属性仅对编译的页有效。

我这里碰到的情况就是,整个Web 项目被编译成了组件,但是 ASPX 页面有如下的定义:
<%@ Page CodeFile="***" Inherits="***" %>
这时候,ASP.net 就需要找 CodeFile 中指定的文件,以便动态编译,但是找不到,所以就报上述错误了。

对于开发时,即 页面的逻辑代码 cs 文件存在的时候,下属两种写法都没有问题。
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="index.aspx.cs" Inherits="Community.IndexHomePage.index" %>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs"
Inherits="Community.IndexHomePage.index" %>

但是部署到站点后,我们不会部署 cs 文件,这时候,后一种写法就会报找不到文件的错误了。除非你把 cs 也部署出去,否则就会报编译时错误,找不到文件...


相关文章:

  • 关于搭建可开发C++程序的eclipse环境的问题(MINGW)。
  • LINQ查询操作符
  • webpack对html模板的处理
  • Linnux下Oracle10G和Oracle11G双版本数据库并存的安装和配置
  • Guice 4.1教程
  • CSS样式表中a:link,a:visited,a:hover,a:active属性含义
  • 64款工具,总有合适您的那款
  • XP怎样开放电脑端口,如:5001
  • 一个谈创业的作者的文集,有点意思
  • ASP的网站配置:请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。...
  • Java常用的非受检异常
  • oraToolKit之一安装oraToolKit并检测安装oracle环境
  • 提高sqlmap爆破效率
  • 让win7下的U盘变快!
  • 按钮级别权限管理数据库设计及后台接口实现
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • isset在php5.6-和php7.0+的一些差异
  • js算法-归并排序(merge_sort)
  • js学习笔记
  • React-flux杂记
  • Spark学习笔记之相关记录
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从setTimeout-setInterval看JS线程
  • 高程读书笔记 第六章 面向对象程序设计
  • 给Prometheus造假数据的方法
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 来,膜拜下android roadmap,强大的执行力
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 配置 PM2 实现代码自动发布
  • 如何在 Tornado 中实现 Middleware
  • 入门到放弃node系列之Hello Word篇
  • 一个JAVA程序员成长之路分享
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #FPGA(基础知识)
  • #mysql 8.0 踩坑日记
  • #pragma once与条件编译
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (第27天)Oracle 数据泵转换分区表
  • (六)Hibernate的二级缓存
  • (十一)手动添加用户和文件的特殊权限
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net core 6 redis操作类
  • .NET gRPC 和RESTful简单对比
  • .NET 中的轻量级线程安全
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET处理HTTP请求
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /run/containerd/containerd.sock connect: connection refused
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——