Mam istniejącą aplikację MVC 4. Chciałem dodać do tego Service Packa. Próbowałem zainstalować pakiet gospodarz Nuget MVC:ServiceStack i MVC4 nie podłączają się do sieci
Install-Package ServiceStack.Host.Mvc
on instalowany 2 pliki w App_Start. Zauważyłem, musiałem dokonać niewielkich zmian bo otrzymuję błąd kompilacji:
W App_State/WebServiceExamples.cs musiałem zaktualizować odniesienia interfejs:
Od: public class HelloService : Service
Do: public class HelloService : ServiceStack.ServiceInterface.Service
potem poszedł do przodu i dwukrotnie sprawdzane ustawienia web.config:
<location path="api">
<system.web>
<httpHandlers>
<add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
</httpHandlers>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
<!-- Required for IIS 7.0 -->
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
</handlers>
</system.webServer>
</location>
potem R aplikacja i poszedł/API, mam 404. Od pewnego dalszych badań postanowiłem ręcznie zaktualizować punkt końcowy za pomocą pliku apphost:
SetConfig(new EndpointHostConfig
{
ServiceStackHandlerFactoryPath = "api",
});
To również nie wydają się działać. Czego jeszcze brakuje?
Dzięki za poświęcony czas.
Dodano routes.IgnoreRoute ("api/{*} pathinfo"); do ruty RegisterRoutes w Global.asax.cs załatwiło sprawę. Jeśli masz ten problem, pamiętaj o dodaniu go przed zarejestrowaniem domyślnej trasy lub innych tras. – TheWebGuy
@Gordon Uwaga: ta informacja jest również zawarta w pliku [ReadMe.txt] projektu NuGet (https://github.com/ServiceStack/ServiceStack/blob/master/NuGet/ServiceStack.Host.Mvc/content/README.txt) plik. – mythz