Nano Hash - криптовалюты, майнинг, программирование

Как отлаживать проект веб-API из проекта MVC в том же решении

В VS 2012 я пытаюсь создать веб-приложение MVC 4 с вызовами jQuery для проекта веб-API. (Другие разработчики будут использовать API с нашим текущим собственным приложением и, возможно, добавят API в будущем.) Итак, у меня есть один проект, который является веб-API, и другой проект, который является веб-сайтом MVC 4. Я могу запустить только один из них, и они используют localhost: xxxxx.

Как отладить изменения в обоих? Например, скажем, я добавляю новый путь API / api / customer / get, а затем новый вызов jQuery ajax для этого пути и что-то делаю с полученным JSON. Я изменил код в обоих проектах и ​​хочу следовать ему от начала до конца; как запустить оба? Как отладить оба?

Чтобы быть ясным, приложение MVC не выполняет серверные вызовы API, я использую MVC в основном для того, чтобы иметь возможность легко использовать объединение, минификацию и (надеюсь) предварительно скомпилированные шаблоны Handlebars в .NET; вызовы API поступают из jQuery. Поскольку я все еще относительно новичок в этих технологиях, приветствуются альтернативные предложения.

Заранее спасибо.


  • Вы можете щелкнуть правой кнопкой мыши решение в обозревателе решений и выбрать «Установить запускаемые проекты ...», затем выбрать «Несколько запускаемых проектов», и при отладке вы можете нажимать точки останова во всех проектах, для которых задано действие «Пуск». 13.05.2013
  • @TDL: Это работает, спасибо. Но это выявило еще одну проблему, заключающуюся в том, что каждый проект привязан к разному номеру порта localhost, что фактически делает их разными веб-сайтами (и доменами?). План заключается в развертывании на том же сайте, но все маршруты API начинаются с / api /. Как мне сделать так, чтобы мои вызовы jQuery ссылались на правильный домен при отладке? Я определенно не хочу заменять URL-адрес в режиме отладки, и тогда мне кажется, что у меня возникают проблемы с междоменным доступом. Имеет ли это смысл? 14.05.2013
  • Если вы хотите разместить их обоих на одном веб-сайте, почему бы не объединить оба проекта в один? 14.05.2013
  • @Jammerms - похоже, что вы жестко встраиваете свои URL-адреса в свой код, что не является хорошей идеей. Подобные вещи должны быть в web.config. Вы можете переопределить их с помощью преобразований в зависимости от целевой среды развертывания. 14.05.2013
  • @LordHits: Я думаю, что мы в конечном итоге объединим их, чтобы упростить задачу, но мы хотели разделить проблемы, если это возможно, и иметь возможность разрабатывать и развертывать API отдельно от веб-сайта. 14.05.2013
  • @TDL: в наших существующих проектах у нас есть вызовы API, выделенные на уровне модели на клиентской стороне MVC, но мы не использовали web.config или преобразования для них. Я пойду в Google, но не могли бы вы указать мне на учебник или пример того, о чем вы говорите? Я никогда не видел, чтобы это делалось таким образом. 14.05.2013
  • Информация здесь, MSDN. Вы также можете использовать что-то вроде пакета CodeAssassin.ConfigTransform nuget. 14.05.2013
  • @TDL: Как поместить URL-адрес API в web.config и ссылаться на них со стороны клиента? Это то, чего я никогда раньше не видел. 14.05.2013
  • @Jammerms - Ищите статьи и помощь по ConfigurationManager и <applicationSettings>. На самом деле это не входит в рамки этого вопроса. 15.05.2013

Ответы:


1

У меня была такая же проблема, и я нашел решение здесь:

forum.asp.net

Исправление заключается в следующем:

В файле решения щелкните "Свойства", перейдите к узлу "Запуск проекта" (если он еще не выбран).

Затем выберите Несколько запускаемых проектов. Выберите свой веб-сайт и веб-службу и в столбце «Действие» убедитесь, что у них обоих выбрано «Пуск».

Теперь, когда вы отлаживаете свой веб-сайт и устанавливаете точку останова в своем веб-сервисе, он должен достичь точки останова.

19.03.2014
  • Это должен быть ответ. 25.06.2014
  • Спасибо, что заставили меня узнать что-то классное сегодня. Работает как шарм. 05.02.2015
  • Отлично. У меня есть проект ASP.net MVC (UI) и еще один проект для моей службы WebAPI с этим советом, который я могу публиковать и DEBUG одновременно. :) 29.03.2015

  • 2

    Опаздываю на вечеринку, но в случае, если кто-то еще ищет решение, это было лучше для меня: установите проект Api в качестве начального проекта (мне нужно было ограничиться одним запуском, чтобы я мог переключаться между браузерами больше без труда). После запуска сервисного проекта щелкните правой кнопкой мыши проект web / ui и выберите отладку, запустите новый экземпляр. У вас будет запущено и то, и другое, и вы легко перейдете от Интернета к API.

    26.02.2018

    3

    У меня была аналогичная проблема с моим проектом веб-API. Мое решение состояло из углового интерфейса с двумя проектами веб-API на сервере. Один проект веб-API обрабатывал «авторизацию», а другой - «ресурсы». В качестве отправной точки я использовал следующий урок Тайсира Джуде:

    http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/

    Точки останова работали на «сервере авторизации» ... но не на «сервере ресурсов». Я сравнил пакеты из двух проектов, чтобы увидеть, в чем разница. Как только я добавил «Microsoft.AspNet.WebApi.Cors» в проект «сервер ресурсов», точки останова начали работать.

    27.01.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..