2013-05-30 4 views
1

Я знаю, что WCF доступен в .NET 3.0 и выше.Можно ли добавить службу WCF на сайт asp.net 2.0?

Однако мне было интересно, можно ли создать рабочий сервис WCF Service.svc на веб-сайте ASP.NET 2.0?

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

Теперь, я был в состоянии без проблем добавить службы WCF на веб-сайт, следующие файлы были созданы: МойВебСайт/App_Code/Service1.cs МойВебСайт/App_Code/IService1.cs МойВебСайт/Service1.svc

Все компилируется просто отлично, я смог добавить все необходимые конечные точки, и узел был успешно создан.

Но когда я перейти к услуге:

http://localhost/MyWebsite/Service1.svc 

Я получаю сообщение об ошибке:

Ошибка сервера в приложении '/' МойВебСайт. Служба Service1 имеет нулевые конечные точки приложения (без инфраструктуры). Возможно, это связано с тем, что файл конфигурации не найден для вашего приложения или потому, что в файле конфигурации не найден ни один элемент службы, соответствующий имени службы, или потому, что в элементе службы не было определено никаких конечных точек.

Сообщение об ошибке запутанно, потому что у меня все определено. Не может быть, потому что веб-сайт работает в IIS в качестве приложения .NET 2.0? Или все еще возможно иметь службу WCF внутри веб-сайта, которая работает как приложение .NET 2.0?

Уточнение Виртуальный каталог IIS для веб-сайта настроен на версию ASP.NET 2.0. Но у нас установлен .NET 4.0.

+3

Есть ли конкретная причина, по которой он должен быть отделен от одного и того же веб-сайта? Почему бы просто не создать новое решение для службы? –

+0

Почему бы просто не создать виртуальный каталог под веб-сайтом, сделать его приложением и сделать его .NET 4.0? –

+1

Джордж, отдельный проект можно сделать без проблем, правда. Но, да, сайт огромный, и тонны функциональности находятся внутри элементов управления ascx (а не мой дизайн :), поэтому я думал повторно использовать эту функциональность вместо дублирования так много кода в отдельном проекте. – monstro

ответ

0

Вы настроили службу в файле web.config? Также возможно, что вам не хватает правильных файлов конфигурации машины/глобальной сети, поскольку вы не устанавливали .NET 3.0 или 3.5. Почему бы не установить .NET 3.5 на эту машину в этом случае? Он должен быть совместим с 2.0.

Не путайте версию AppPool .NET (потому что это 2.0 для .NET 20, 3.0 и 3.5, она относится к версии библиотеки базового класса) и используемой версии платформы .NET.

Другое решение - это просто конфигурация WCF в вашем web.config. Вы что-то там изменили?

+0

У меня установлены все .NET Framework, в том числе 4.0. Я запускаю MVC3, WCF и все последние приложения. Однако этот конкретный веб-сайт может работать только как приложение ASP.NET 2.0 по бизнес-причинам. Да, служба WCF настроена правильно в web.config. Если я изменю версию приложения asp.net приложения в IIS с 2.0 до 4.0, сообщение об ошибке исчезнет, ​​показывая данные службы wcf, но не узнайте метаданные. – monstro

+0

Кроме того, на моей машине нет AppPools, у меня IIS 5.1 – monstro

+0

Итак, вы не изменили файл web.config для .NET 3.0 или 3.5? .NET 4 имеет соглашение о настройке web.config, и, возможно, ваш код работает в приложении 4.0. Поэтому, когда на вашем сервере установлены файлы с 3.5-бинарными версиями, вы должны заставить его работать, настраивая нужные вещи в вашем web.config. В те годы именно благодаря открытию решения в VS2008 он обновил конфигурацию для вас. –

0

за то, что он стоит, посмотреть требования-страницы: http://msdn.microsoft.com/en-us/library/ms733890.aspx

если вы смотрите в разделе «другие варианты» это только восходит к 3,0 ... там могут быть и другие ссылки, которые могли бы помочь.

Смежные вопросы