![](/img/trans.png)
[英]Can I deploy two ASP.NET (MVC and WebApi) applications side-by-side?
[英]How do I install service stack 4 side-by-side with asp.net MVC 4?
我已經完成了servicestack文檔中的所有步驟,並遵循了Stack Overflow上類似文章的建議,但是每當我嘗試訪問“ / api /”路由時,都會出現以下錯誤:
Handler for Request not found:
Request.HttpMethod: GET
Request.PathInfo: /api/metadata
Request.QueryString:
Request.RawUrl: /api/api/metadata
代碼的相關部分:
AppHost:
public class HolidayEventPlannerAppHost : AppHostBase
{
public HolidayEventPlannerAppHost() : base("Holiday Event Planner App Host", typeof(HelloService).Assembly) { }
public override void Configure(Funq.Container container)
{
SetConfig(new HostConfig { HandlerFactoryPath = "api" });
}
}
Routeconfig.cs:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("api/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
另外,當我在瀏覽器的地址欄中鍵入“ localhost:port / api”時,瀏覽器將重定向到“ localhost:port / api / api / metadata”,這是我收到錯誤消息的地方。 它不會讓我訪問“ localhost:port / api / metadata”。
最后有人幫助徹底消除元數據。 您需要輸入:
SetConfig(new HostConfig
{
HandlerFactoryPath = "api",
MetadataRedirectPath = "/"
});
我正在使用ServiceStack 3.9.70,對我來說,為了與MVC WebApi一起使用ServiceStack,我必須這樣做:
SetConfig(new EndpointHostConfig
{
ServiceStackHandlerFactoryPath = "sapi",
MetadataRedirectPath = "sapi/metadata"
});
這樣,我可以將api
用於WebAPI,將sapi
用於ServiceStack。 別忘了您還需要修改Web.Config, 這里有完整的說明 。
有一個用於托管帶有MVC4的ServiceStack的現有模板,您還想確保已為ServiceStack正確配置了Web.config,可以將其與Mvc4 Web.Config進行比較。
有關與MVC集成的更多信息, 請參見Wiki 。
自從使用ServiceStack v4以來,此重定向路徑存在類似問題。
作為修復,我發現使用以下HostConfig
覆蓋MetadataRedirectPath是HostConfig
:
SetConfig(new HostConfig
{
HandlerFactoryPath = "api",
MetadataRedirectPath = "/metadata"
});
我認為,如果沒有此配置,則無論是如何確定默認的MetadataRedirectPath
還是將重定向URL與處理程序工廠路徑組合在一起都將暴露一個錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.