При создании проекта WCF файлы-члены по умолчанию являются обычными файлами класса csharp, а не svc-файлами. Требуются ли файлы svc с проектом WCF? Когда их следует использовать?Связь между SVC-файлами и проектами WCF?
ответ
.svc-файлы используются, когда вы размещаете свою службу WCF в IIS.
См. Документ Microsoft here и here.
В IIS есть модуль, который обрабатывает файл .svc. На самом деле, это ISAPI модуль ASPNET, который руки прочь запрос на SVC-файла к одному из типов обработчика фабричных, который был сконфигурирован для ASPNET, в этом случае
System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version = 3.0.0.0, культура = нейтральной, PublicKeyToken = b77a5c561934e089
Если вы хостинг вашей службы WCF в чем-то другом, чем IIS, то вам не нужен SVC-файл.
Вид старых вопросов, но для Googlers ..
На самом деле, можно создать проект WCF и разместить его в IIS без использования SVC-файла.
Вместо реализации вашего DataContract в вашем SVC кода позади, вы реализуете его в нормальном .cs файле (т.е. за не код.)
Таким образом, вы имели бы MyService.cs как это:
public class MyService: IMyService //IMyService defines the contract
{
[WebGet(UriTemplate = "resource/{externalResourceId}")]
public Resource GetResource(string externalResourceId)
{
int resourceId = 0;
if (!Int32.TryParse(externalResourceId, out resourceId) || externalResourceId == 0) // No ID or 0 provided
{
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.NotFound;
return null;
}
var resource = GetResource(resourceId);
return resource;
}
}
Затем приходит вещь, делающая это возможным. Теперь вам нужно создать Global.asax с фоновым кодом, где вы добавляете крючок событие Application_Start:
public class Global : HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes();
}
private void RegisterRoutes()
{
// Edit the base address of MyService by replacing the "MyService" string below
RouteTable.Routes.Add(new ServiceRoute("MyService", new WebServiceHostFactory(), typeof(MyService)));
}
}
Одна хорошая вещь о том, что вы не должны обрабатывать .svc в ваших URL-адресов ресурсов. Не так приятно, что теперь у вас есть файл Global.asax.
Если вы используете .NET 4.0 или более поздней версии, теперь вы можете «моделировать» в .svc с помощью конфигурации со следующим:
<system.serviceModel>
<!-- bindings, endpoints, behaviors -->
<serviceHostingEnvironment >
<serviceActivations>
<add relativeAddress="MyService.svc" service="MyAssembly.MyService"/>
</serviceActivations>
</serviceHostingEnvironment>
</system.serviceModel>
Тогда вам не нужен физический файл SVC-ни глобальной .asax
Могут ли файлы .svc и global.asax в этом вопросе считаться «устаревшими»? –
- 1. Связь между проектами в XCode
- 2. Git: Связь между шаблоном и текущими проектами
- 3. Связь между Rails и WCF
- 4. Связь между Python и WCF
- 5. Связь между службами WCF
- 6. Связь между процессами WCF
- 7. двунаправленная связь между проектами в одном решении
- 8. Связь между проектами с использованием библиотеки классов
- 9. WCF - связь между клиентом и сервером
- 10. Связь между WCF (ServiceHost) и HTML (JQuery)
- 11. Связь между WCF и хостинг Windows Service
- 12. Двунаправленная связь между WCF-сервером WCF
- 13. C# - WCF - связь между процессами
- 14. Какова связь между проектами и приложениями в спинакере?
- 15. wcf и дуплексная связь
- 16. T4 копия enum между проектами
- 17. Связь между процессами с протоколом NetNamedPipeBinding WCF
- 18. Связь с клиентом WCF
- 19. WCF NamedPipe IPC-связь
- 20. связь между windows mobile client и winforms application throw wcf
- 21. Как реализовать безопасную связь между клиентом и сервером в WCF?
- 22. защищает связь между клиентским приложением и службой WCF
- 23. Связь между старым IP-сервером tcp и приложением WCF
- 24. Связь между VSTO и .XLL
- 25. Trac уникальный идентификатор между проектами
- 26. Какова связь между репо и git?
- 27. Связь между кадрами
- 28. Служба WCF и связь с устройствами
- 29. Ссылки между двумя проектами
- 30. Гит между несколькими проектами
Что еще я могу разместить в своей службе? –
Три, которые приходят на ум, это: пользовательский хост, который вы пишете, сторонний поставщик, который вы покупаете, или служба Windows. http://msdn.microsoft.com/en-us/library/bb332338.aspx – Cheeso