gpt4 book ai didi

asp.net-mvc - ServiceStack 和 MVC4 未接线

转载 作者:行者123 更新时间:2023-12-04 18:45:21 25 4
gpt4 key购买 nike

我有一个现有的 MVC 4 应用程序。我想向它添加服务堆栈。我尝试安装 MVC 主机 nuget 包:

安装包 ServiceStack.Host.Mvc

它在 App_Start 中安装了 2 个文件。我注意到我必须做些小改动,因为我遇到了构建错误:

在 App_State/WebServiceExamples.cs 中,我不得不更新接口(interface)引用:

发件人:public class HelloService : Service
至:public class HelloService : ServiceStack.ServiceInterface.Service
然后我继续检查 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>

然后我运行应用程序并转到/api,我得到了 404。通过进一步的研究,我决定通过 apphost 文件手动更新端点:
SetConfig(new EndpointHostConfig
{
ServiceStackHandlerFactoryPath = "api",
});

这似乎也不起作用。我还缺少什么?

谢谢你的时间。

最佳答案

这也应该在您的 web.config 文件中:

<httpHandlers>
<add path="api*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
</httpHandlers>

也不要忘记 删除 MVC '/api' 路由/路径。您需要将其删除,以便 ServiceStack 和 MVC 不会竞争“/api”路由/路径。
//REMOVE THIS FROM RouteConfig
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
);

如果您想真正明确,也可以将其添加到 RouteConfig
routes.IgnoreRoute ("api/{*pathInfo}");

关于asp.net-mvc - ServiceStack 和 MVC4 未接线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15303024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com