пространство имен или класс не найдены (веб-сайт ASP.NET "проект") - PullRequest
4 голосов
/ 25 июня 2009

В настоящее время я пытаюсь очистить корпоративный веб-сайт, унаследованный здесь. Мне удалось устранить большинство ошибок на веб-сайте, но что-то все еще здесь.

У меня есть одна мастер-страница с этим кодом:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class MasterPage : System.Web.UI.MasterPage {
    public lists m_listsClass = new lists();

(нет, это не опечатка в списках).

Теперь в App_code у меня один класс lists.cs

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

/// <summary>
/// Summary description for lists
/// </summary>
public class lists
{
    public lists()
    {

Когда я пытаюсь создать сайт в visual studio 2008, у меня появляется эта ошибка:

Error   3   The type or namespace name 'lists' could not be found (are you missing a using directive or an assembly reference?) C:\Users\egirard\Documents\Visual Studio 2008\Projects\iFuzioncorp\iFuzioncorp\Masters\MasterPage.master.cs 23  12  iFuzioncorp

Я что-то упустил?

Также я видел странное поведение на сервере. По-видимому, в соответствии с IIS7 он компилируется с использованием .net 2.0 (пул настроен на .net 2), но есть некоторые операторы "using ", которые включают Linq ... как можно скомпилировать страницу, если Linq не является частью сам .net 2?

Только что отредактировал с новостями о самом коде. Пространства имен вообще нет.

Ответы [ 9 ]

12 голосов
/ 28 июля 2009

Привет! У меня была похожая проблема; все мои пространства имен и наследования были на месте. Затем я заметил, что действие сборки файла класса было установлено на «Content», а не «Compile» (в окне свойств.

2 голосов
/ 05 декабря 2009

Сколько бы ни стоило ответа (возможно, не правильного) после многих месяцев, я думаю, что я должен внести свой вклад:

В некоторых случаях это происходит, когда вы размещаете веб-сайт внутри другого (т. Е. В подпапке). В этом случае единственной допустимой папкой App_Code является папка App_code внешнего веб-сайта. То есть папка App_Code прямо под корнем главного веб-сайта.

Может быть (скажем, может быть) не нужно преобразовывать ваш веб-сайт в веб-приложение, если вы поместите файл класса в папку App_code на веб-сайте ROOT.

1 голос
/ 28 июля 2009

Наконец-то я довольно недавно понял, что это веб-сайт , а не веб-приложение Мне пришлось опросить ребят здесь, чтобы получить его ... Так что это вполне нормально, все ошибки Я имел. У меня не было возможности сначала преобразовать его.

1 голос
/ 25 июня 2009

включает пространство имен, в котором определяется список значений

или

определить как главную страницу, так и класс списков в одном и том же пространстве имен

0 голосов
/ 27 февраля 2019

У меня была эта проблема сама

Он не работал, потому что проект, на который я ссылался, был установлен как консольное приложение в его свойствах вместо библиотеки классов

0 голосов
/ 13 июня 2014
  1. Измените действие сборки класса App_Code для компиляции.

  2. Очистить и построить проект

Это сработало для меня.

0 голосов
/ 25 июня 2009

это lists.cs, завернутый в пространство имен? если это так, то вам нужно добавить пространство имен (yournamespace.lists) или включить его в мастер-страницу. Проверьте также, если ваша MasterPage находится в пространстве имен

0 голосов
/ 25 июня 2009

Чтобы использовать тип, вы должны ссылаться на сборку, которая его определяет, и включать соответствующее пространство имен.

Использование включает только пространства имен, если вы не используете типы из указанных пространств имен, это не имеет никакого эффекта.

0 голосов
/ 25 июня 2009

Убедитесь, что на вашей главной странице есть оператор #include для пространства имен, частью которого является класс списков (если они находятся в отдельных пространствах имен, мастер-страница не будет автоматически обрабатывать его).

Что касается странного поведения на стороне сервера, все .NET 2.0, 3.0 и 3.5 работают внутри пулов приложений .NET 2.0 в IIS. Поначалу это выглядит странно, но вы к этому привыкли. Вот ссылка с чуть более подробным объяснением:

Как я это вижу: где ASP.NET 3.5 в IIS?

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