很长一段时间以来,除了对ASP.NET进行微小的修复之外,我不得不做任何事情,而且我从未部署过ASP.NET 2.0 / 3.5应用程序,所以我可能只是错过了一些简单但我绝对需要帮助的东西。
基本上,我们编写的.NET 1.1 Web应用程序编写得很糟糕,我们有一些承包商进来打破了我们的第三方依赖关系,并将其更新为编写得不好的.NET 3.5 Web应用程序(写得不好的部分将是稍后讨论。)
所以现在我正在像我们的部署环境那样在虚拟机上练习部署方案。
但导航到我得到的登录页面:
Parser Error Message: The file '/View/LoginPage.aspx.cs' does not exist.
Line 1: <%@ Page Language="C#" MasterPageFile="~/MasterPage/LoginMasperPage.Master" AutoEventWireup="true"
Line 2: CodeFile="LoginPage.aspx.cs" Inherits="MyApp.View.LoginPage" Title="MyApp - Login Page" %>
是什么给出的?在应用程序的.NET 1.1版本中,所有c#代码都被编译到MyApp.dll中,应用程序知道在那里查看。使用反射器进行双重检查,所有代码也在这里的二进制文件中,只是服务器没有查找它。
可以发生什么事?我可以等待承包商明天进入,或者将包括aspx文件在内的所有文件编译成二进制文件,但我们有充分的理由保持aspx文件不编译,如果可能的话我今天要部署。
请注意,这不是ASP.NET MVC,视图命名空间/目录只是保存所有网络表单的地方
答案 0 :(得分:5)
您可能已将网站模型用于更新的应用程序。请考虑使用Web应用程序项目。
答案 1 :(得分:2)
在“&lt;%@ Page”指令中更改CodeFile =对CodeBehind =的引用。
答案 2 :(得分:-1)
在visual studio试试这个。单击您的Web应用程序项目。转到Build&gt; PUblish&gt;选择地点&gt;点击发布。这将构建所有内容并将所有.cs文件放入单个dll文件中。它还会将您的html / aspx文件保留在相同的位置。这使您可以执行aspx代码所需的操作,同时隐藏所有cs。