Я создаю простое веб-приложение ASP.NET MVC 2.0.Я бы хотел обслуживать конечную точку AtomPub, чтобы я мог публиковать / обновлять содержимое из Windows Live Writer.Первоначально я пошел по пути реализации протокола AtomPub в качестве контроллера с набором пользовательских ActionResults.Это работало до тех пор, пока я не попытался заставить аутентификацию работать, когда я понял, что заставить Basic или Digest auth (необходимые для WLW) работать в моем приложении MVC на основе Forms-Auth будет проблематично.решил переместить логику AtomPub в службу WCF в приложении MVC.Я создал новый сервис WCF под названием AtomPub.svc.Я добавил следующее в мой файл web.config:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
И мой код AtomPub.svc.cs выглядит следующим образом:
namespace Web
{
using System.ServiceModel;
using System.ServiceModel.Web;
[ServiceContract]
public partial class AtomPub
{
[WebGet(UriTemplate = "?test={test}")]
[OperationContract]
public string DoWork(string test)
{
return test;
}
}
}
Я также добавил исключение маршрута висключить эту конечную точку из обработки маршрута MVC.
Теперь я абсолютный новичок в WCF, так что я уверен, что делаю много вещей неправильно.Когда я пишу это, корень конечной точки, кажется, работает, когда я получаю страницу службы AtomPub.Однако шаблон URL не работает, и я не знаю, что нужно сделать, чтобы он работал.Мне бы очень хотелось услышать ваши предложения.
Кстати, я стараюсь сделать эту общую реализацию максимально простой.Поэтому я не собираюсь вводить зависимость от Entity Framework, чтобы я мог использовать службы данных WCF.Я также предпочел бы не перемещать конечную точку WCF в отдельный проект, хотя я открыт для этого, если смогу легко развернуть ее в среде W2k3 / IIS6.