ASP.NET начинающий горе с новым веб-сайтом - PullRequest
2 голосов
/ 07 июня 2009

Я достаточно опытный разработчик .net для настольных компьютеров, но это мой первый опыт использования ASP.NET, и я почти сразу зашла в тупик.

Я использовал мастер VS2008 «Новый веб-сайт» и получил простую рабочую страницу, страницу с кодом и все остальное. Но мой следующий шаг по добавлению простого статического класса для некоторых служебных методов, которые будут использоваться всеми страницами, совсем не работает.

Я пытался поместить код в App_Code, я пытался создать новый библиотечный проект и сослаться на него ... все всегда прекрасно компилируется в Visual Studio, но при загрузке на сервер он просто отказывается найти пространство имен / класс или распознать сборку библиотеки. Я попытался возиться с web.config, но не смог найти какой-либо способ ссылки на библиотечную сборку («*», похоже, этого не делает).

На страницах сервера написано: Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.3074; ASP.NET версия: 2.0.50727.3074

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

Точная ошибка, которую я получаю: CS0246: Не удалось найти тип или имя пространства имен «MyCommon» (отсутствует директива using или ссылка на сборку?)

Ответы [ 6 ]

5 голосов
/ 07 июня 2009

Лучше всего игнорировать веб-сайт "проекты". Они уникальны в мире Visual Studio тем, что они не являются проектами (нет .csproj или другого подобного файла). Они будут казаться очень странными и нелогичными любому разработчику, не являющемуся веб-сайтом.

Вместо этого используйте Файл-> Добавить новый проект и выберите «Веб-приложение ASP.NET». Это создаст проект веб-приложения, который будет работать намного лучше, чем вы ожидаете. Вы даже можете добавить классы в любую папку, которая вам нравится, и они будут работать так, как вы ожидаете, что они будут работать.

2 голосов
/ 07 июня 2009

Я предполагаю, что у вас есть есть оператор using, который указывает на пространство имен?

Что-то, что я вижу время от времени ... на сервере, вы (в IIS) помечали новую папку как «приложение»? Это должно быть винтик в IIS. Если вы этого не сделали, то он будет искать неправильный каталог для App_Code («приложение» сообщает ему, где находится локальный корень приложения). Щелкните правой кнопкой мыши, свойства, «создать приложение» (или что-то в этом роде - у меня нет сервера для передачи ...)

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

Я видел эту ошибку, когда класс не в App_Code ...

С другой стороны, вы могли бы начать с ASP.NET Application вместо веб-сайта. Это две разные модели приложений, вариант приложения немного проще с добавлением классов и сборок.

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

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

Однако, если вам нужно придерживаться модели проекта веб-сайта, вам следует убедиться, что вы добавили ссылку на свой проект (MyCommon) в веб-приложение, а затем создали оператор using в классе, который хотите использовать.

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

Убедитесь, что вы перенесли свой проект на сервер через , опубликовав веб-сайт . Кроме того, вы можете использовать проект веб-приложения (новый-> проект-> веб-> проект веб-приложения) вместо нового веб-сайта. Вероятно, он будет вести себя так, как вы ожидаете.

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

Убедитесь, что ваш вспомогательный класс находится в том же пространстве имен, что и веб-форма, или полностью определите тот вспомогательный метод, который вы вызываете. Можете ли вы предоставить код того, что вы пытаетесь сделать?

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