很长一段时间以来,我不得不做任何事情,除了对ASP.NET的一些小修复,我从未部署过ASP.NET 2.0/3.5应用程序,所以可能我只是缺少一些简单但我绝对需要帮助的东西.
基本上,我们有一个写得不好的.NET 1.1 Web应用程序,我们有一些承包商进入并打破了我们的一些第三方依赖项并将其更新为编写得不好的.NET 3.5 Web应用程序(编写得很糟糕的部分将在稍后解决) .
所以现在我正在像我们的部署环境那样在虚拟机上练习部署方案.
我安装了3.5框架
我编译了新代码,并按照承包商的建议使用visual studio的Build> Publish选项,只输出应用程序所需的文件.
我将所有文件复制到VM上Inetpub内的新目录并配置了web.config
我创建了一个新的应用程序池
我创建了一个新的IIS网站,指向新目录并使用新的应用程序池.我将其配置为使用IIS ASP.NET选项卡下的2.0版
但导航到我得到的登录页面:
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,视图命名空间/目录就是保存所有webform的地方
您可能已将网站模型用于更新的应用程序.请考虑使用Web应用程序项目.