Здесь много противоречивой информации. Например, если вы действительно создаете веб-приложение ASP.NET (в отличие от веб-сайта ), то вам не следует использовать CodeFile
, как used2could предлагает .
Вы пытались проверить Build Action ваших файлов с выделенным кодом? Убедитесь, что он установлен на Compile .
Я думаю, что нам нужно начать с нуля, чтобы определить, связана ли проблема с вашим веб-проектом, вашей конфигурацией IIS или обоими.
Я собираюсь сделать следующие предположения о вашей настройке, потому что это моя текущая установка. Дайте мне знать, если что-то из этого не так, но это не должно иметь большого значения:
- Вы используете Visual Studio 2010 с .NET 3.5
- Ваш веб-сервер - Windows 2003
- Ваш веб-сервер работает под управлением IIS 6.0
Создание нового проекта веб-приложения:
Давайте постараемся сделать это как можно более простым, чтобы минимизировать вероятность странностей:
- Решение 'TestWebApp1'
- Проект 'TestWebApp1' (веб-приложение ASP.NET)
- Свойства
- Ссылки
- App_Data
- Сценарии
- Default.aspx (Действие сборки: Содержимое )
- Default.aspx.cs (Действие сборки: Компиляция )
- SiteLayout.Master (Действие по сборке: Содержимое )
- SiteLayout.Master.cs (Действие сборки: Компиляция )
- Web.config
Содержимое Default.aspx :
<%@ Page Title="" Language="C#" MasterPageFile="~/SiteLayout.Master"
AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="TestWebApp1.Default" %>
<asp:Content ID="Content2" ContentPlaceHolderID="mainCPH" runat="server">
<p><asp:Label ID="lblTest" runat="server">This is a test</asp:Label></p>
</asp:Content>
Содержимое Default.aspx.cs :
using System;
namespace TestWebApp1
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblTest.Text = "Modified from Default.aspx's Page_Load method.";
}
}
}
Содержимое SiteLayout.Master :
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="SiteLayout.master.cs"
Inherits="TestWebApp1.SiteLayout" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<form id="form1" runat="server">
<div>
<p><asp:Label ID="lblTest" runat="server">This is a test</asp:Label></p>
<asp:ContentPlaceHolder ID="mainCPH" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
Содержимое SiteLayout.Master.cs :
using System;
namespace TestWebApp1
{
public partial class SiteLayout : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
lblTest.Text = "Modified from master page's Page_Load method.";
}
}
}
Теперь этот сайт должен работать в обязательном порядке при отладке на локальном компьютере:
Развертывание в IIS
- Щелкните правой кнопкой мыши по проекту TestWebApp1 и выберите Опубликовать.
- Для простоты выберите «Файловая система» в качестве «метода публикации».
- Укажите путь, по которому будут развернуты файлы.
- На вашем веб-сервере откройте IIS (я предполагаю, что вы используете IIS 6.0)
- Под Веб-сайтом по умолчанию (или любым другим используемым вами сайтом) создайте новый Виртуальный каталог . Убедитесь, что у него есть права на запуск скриптов.
- Скопируйте файлы, которые были опубликованы на вашем компьютере разработчика, в виртуальный каталог IIS.
- Вот и все - ваш сайт должен работать нормально.
После выполнения вышеуказанных действий у вас все еще возникают проблемы?