分析器错误消息 - 为什么我的ASP.NET部署需要cs文件?

时间:2009-03-09 19:09:00

标签: asp.net .net-3.5 deployment

很长一段时间以来,除了对ASP.NET进行微小的修复之外,我不得不做任何事情,而且我从未部署过ASP.NET 2.0 / 3.5应用程序,所以我可能只是错过了一些简单但我绝对需要帮助的东西。

基本上,我们编写的.NET 1.1 Web应用程序编写得很糟糕,我们有一些承包商进来打破了我们的第三方依赖关系,并将其更新为编写得不好的.NET 3.5 Web应用程序(写得不好的部分将是稍后讨论。)

所以现在我正在像我们的部署环境那样在虚拟机上练习部署方案。

  1. 我安装了3.5框架
  2. 我编译了新代码,并按照承包商的建议使用了visual studio的Build> Publish选项,只输出应用程序所需的文件。
  3. 我将所有文件复制到VM上Inetpub内的新目录并配置了web.config
  4. 我创建了一个新的应用程序池
  5. 我创建了一个新的IIS网站,指向新目录并使用新的应用程序池。我将其配置为使用IIS ASP.NET选项卡下的2.0版
  6. 但导航到我得到的登录页面:

    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,视图命名空间/目录只是保存所有网络表单的地方

3 个答案:

答案 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。