Конечно, нет проблем: во-первых, прочитайте все о новых функциях WCF 4 в Введение разработчика в Windows Communication Foundation 4 .
То, что вы ищете, называется активация без файловой службы .Это новый параметр в вашем <system.serviceModel>
, который выглядит примерно так:
<serviceHostingEnvironment>
<serviceActivations>
<add factory="System.ServiceModel.Activation.ServiceHostFactory"
relativeAddress="/YourService"
service="SomeNamespace.YourService"/>
</serviceActivations>
</serviceHostingEnvironment>
По сути, вся информация, которую вы будете иметь в файле * .svc (путь, служба для вызова), находится в этой конфигурациираздел сейчас.
Вы должны быть в состоянии позвонить в эту службу по номеру
http://yourserver/virtualdirectory/YourService
сейчас - не более * .svc, без беспорядочной перезаписи URL и т. д. - просто работает!
Обновление: кажется, что это работает не очень хорошо, если только вы не войдете и не добавите расширение * .svc к своему относительному пути - добро победит всю цель!
ЕслиЕсли вы хотите зарегистрироваться по маршруту ASP.NET, ознакомьтесь с документами MSDN по этой теме.Вы должны иметь что-то подобное при запуске своего приложения, в веб-приложении, которое будет global.asax.cs
:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
private void RegisterRoutes(RouteCollection routes)
{
routes.Add(new ServiceRoute("YourService",
new WebServiceHostFactory(), typeof(SomeNamespace.YourService)));
}
Надеемся, что с этим вы сможете запустить свой сервис иработает без каких-либо расширений файлов * .svc!