Podczas tworzenia projektu WCF domyślnymi plikami członków są zwykłe pliki klas csharp, a nie pliki svc. Czy w projekcie WCF są wymagane pliki svc? Kiedy powinny być używane? PlikiPowiązanie plików SVC z projektami WCF?
Odpowiedz
.svc są używane podczas hostowania usługi WCF w usługach IIS.
Zobacz dokumentację Microsoft here i here.
W module IIS znajduje się moduł obsługujący plik .svc. Właściwie, to jest moduł ISAPI ASPNET, który podaje się do wniosku o pliku .svc do jednego z rodzajów fabrycznych obsługi, które zostały skonfigurowane dla ASPNET, w tym przypadku
System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version = 3.0.0.0, Culture = neutral, TokenKluczaPublicznego = b77a5c561934e089
Jeśli hosting usług WCF w czymś innym niż IIS, wtedy nie trzeba plik .svc.
Kind starej pytania, ale dla Googlersami ..
Właściwie, to jest możliwe, aby utworzyć projekt WCF i udostępniać je w IIS bez użycia .svc pliku.
Zamiast wdrażania swoją DataContract w SVC kodu źródłowego, wdrożyć go w normalnym pliku .cs (czyli za brak kodu).
Tak, to masz MyService.cs jak to:
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;
}
}
Potem przychodzi rzecz, która to umożliwia. Teraz trzeba stworzyć Global.asax z kodu źródłowego, gdzie dodać hak zdarzenia 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)));
}
}
Jedną miłą rzeczą jest to, że nie trzeba obsłużyć .svc w adresach URL zasobów. Jedną niezbyt dobrą rzeczą jest to, że masz teraz plik Global.asax.
Jeśli używasz .NET 4.0 lub nowszy, można teraz „symulować” .svc poprzez config z następujących czynności:
<system.serviceModel>
<!-- bindings, endpoints, behaviors -->
<serviceHostingEnvironment >
<serviceActivations>
<add relativeAddress="MyService.svc" service="MyAssembly.MyService"/>
</serviceActivations>
</serviceHostingEnvironment>
</system.serviceModel>
Wtedy nie trzeba plik .svc fizycznej ani globalnym .asax
Czy pliki .svc i global.asax można uznać za "przestarzałe"? –
- 1. Usługa WCF. Gdzie dodać. svc file
- 2. Jak przechwycić wszystkie wywołania metod w usłudze WCF .svc?
- 3. Czy mogę mieć wiele plików .svc w jednym katalogu wirtualnym w IIS w WCF?
- 4. Jak usunąć rozszerzenie ".svc" w usłudze RESTful WCF?
- 5. Usługi IIS 7 nie rozpoznaje pliku svc
- 6. Windows: ustanów powiązanie plików z plikiem wsadowym
- 7. WCF Niestandardowe powiązanie JSONP i https Transport
- 8. TypeLITE z wieloma projektami
- 9. Różnica między biblioteką usługi WCF a aplikacją usługi WCF
- 10. Czy potrzebuję pliku svc do instalacji obiektu Castle Wcf dla usług innych niż HTTP
- 11. piwny powiązanie z ImageMagick
- 12. Powiązanie danych z Javą
- 13. Powiązanie z UserControl DependencyProperty
- 14. Rejestrowanie śledzenia WCF nieprodukujące plików dziennika
- 15. WCF Mono - BasicHttpBinding z SSL
- 16. Dołączanie plików do odpowiedzi usług WCF REST
- 17. LInearSVC vs. SVC (kernel = 'linear'): Sprzeczne argumenty?
- 18. Jak zarządzać dużymi projektami TYPO3?
- 19. TeamCity zintegrowane z projektami Xcode (BUILD RUNNER)
- 20. Tworzenie pakietu pip Pythona z moimi projektami
- 21. Najlepsze metody kontroli wersji z wieloma projektami
- 22. Ilekroć Cron z wieloma projektami na serwerze
- 23. Najlepsze praktyki Git z projektami Visual Studio
- 24. Przesyłanie plików MS Word z Android do .Net WCF?
- 25. Klawiszowanie między projektami Xcode?
- 26. Transfer plików strumieniowych WCF ON .NET 4
- 27. Wyczyść powiązanie w Silverlight (usuń powiązanie danych z SetBinding)
- 28. Jak obsługiwać powiązanie nazwanych potoków sieciowych z włączoną aplikacją wcf w iis?
- 29. Xcode - powiązanie błąd _OBJC_CLASS _ $ _ „className” po wymianie plików klas
- 30. Jak korzystać z GIT, gdy mam wiele plików udostępnionych między wieloma projektami
Co jeszcze mogę udostępnić moją usługę? –
Trzy, które przychodzą na myśl, to: niestandardowy host, który piszesz, dostarczany przez firmę zewnętrzną host, lub usługa Windows. http://msdn.microsoft.com/en-us/library/bb332338.aspx – Cheeso