Сообщение об ошибке Parser - зачем моему развертыванию ASP.NET нужны файлы cs - PullRequest
0 голосов
/ 09 марта 2009

Прошло много времени с тех пор, как мне пришлось что-то делать, кроме мелких исправлений с ASP.NET, и я никогда не развертывал приложение ASP.NET 2.0 / 3.5, поэтому, возможно, я просто упускаю что-то простое, но мне определенно нужна помощь.

По сути, у нас есть плохо написанное веб-приложение .NET 1.1, и к нам пришли некоторые подрядчики, которые сломали некоторые сторонние зависимости и обновили его до плохо написанного веб-приложения .NET 3.5 (плохо написанная часть будет адресовано позже).

Так что теперь я практикую сценарии развертывания на виртуальной машине, настроенной как наша среда развертывания.

  1. Я установил 3.5 рамки
  2. Я скомпилировал новый код и использовал опцию Build> Publish в Visual Studio в соответствии с рекомендациями подрядчиков для вывода только тех файлов, которые требуются приложению.
  3. Я скопировал все файлы в новый каталог внутри Inetpub на виртуальной машине и настроил web.config
  4. Я создал новый пул приложений
  5. Я создал новый веб-сайт IIS, указывающий на новый каталог и использующий новый пул приложений. Я настроил его для использования версии 2.0 на вкладке IIS ASP.NET

Но при переходе на страницу входа я получаю:

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 ]

5 голосов
/ 09 марта 2009

Возможно, вы использовали модель веб-сайта для вашего обновленного приложения. Попробуйте вместо этого использовать проект веб-приложения.

2 голосов
/ 10 сентября 2010

Измените ссылку CodeFile = на CodeBehind = в директиве "<% @ Page". </p>

0 голосов
/ 09 марта 2009

В визуальной студии попробуйте это. Нажмите на свой проект веб-приложения. Перейдите в «Сборка»> «PUblish»> «Выберите местоположение»> нажмите «Опубликовать». Это соберет все и поместит все файлы .cs в один файл DLL. Это также оставит ваши html / aspx файлы в тех же местах. Это позволяет вам делать то, что вам нужно делать с кодом aspx, сохраняя при этом все ваши cs скрытыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...