Я по-настоящему опытный разработчик .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 или ссылки на сборку?)
Я предполагаю, что у вас есть оператор using
, который указывает на пространство имен?
Что-то, что я вижу время от времени... на сервере, вы (в IIS) отметили новую папку как "приложение"? Он должен иметь винтик в IIS. Если вы этого не сделали, то он будет искать неправильное местоположение для App_Code ( "приложение" сообщает, где находится локальный корень приложения). Щелкните правой кнопкой мыши, свойства, "создайте приложение" (или что-то в этом роде - у меня нет сервера для передачи...)
Лучше всего игнорировать "проекты" веб-сайта. Они уникальны в мире Visual Studio, поскольку они не являются проектами (нет .csproj или другого подобного файла). Они будут казаться очень странными и противоречивыми для любого разработчика не веб-сайта.
Вместо этого используйте File- > Add New Project и выберите "ASP.NET Web Application". Это создаст проект веб-приложения, который будет работать намного больше, как вы ожидаете. Вы даже можете добавлять классы в любую папку, которая вам нравится, и они будут работать так, как вы ожидали, что они будут работать.
Я видел эту ошибку, когда класс не в App_Code...
В другой заметке вы могли бы начать с приложения ASP.NET вместо веб-сайта. Это две различные модели приложений, вариант приложения немного проще с точки зрения добавления классов и сборок.
Я бы не стал использовать проект веб-сайта, так как это вызвало массу проблем для нашей команды, подобно тому, что вы здесь описываете. Вместо этого вы должны использовать модель Web Application project, которая более понятна и более подходит для многопроектных решений.
Однако, если вы должны придерживаться модели проекта веб-сайта, вы должны убедиться, что добавили ссылку на свой проект (MyCommon) в веб-приложение, а затем создаете оператор using в классе, который хотите его использовать.
Убедитесь, что ваш вспомогательный класс находится в том же пространстве имен, что и веб-форма, или полностью квалифицирует конкретный вспомогательный метод, который вы вызываете. Можете ли вы предоставить какой-то код того, что вы пытаетесь сделать?
Обязательно переместите проект на сервер через публикацию веб-сайта. Кроме того, вы можете использовать проект веб-приложения (новый- > проект- > веб- > проект веб-приложения) вместо новой веб-страницы сайт. Вероятно, он будет вести себя так же, как вы ожидаете.