【问题标题】:Host a mvc web api application in the sub-folder of a website在网站的子文件夹中托管 mvc web api 应用程序
【发布时间】:2019-04-06 09:47:08
【问题描述】:

我的网站根文件夹中已经有一个 Web 应用程序。 (例如http://cassapi.gear.host)。现在,我想在“wwwroot”文件夹内的子文件夹中添加一个 MVC Web API 应用程序,这样我就可以访问我的家庭控制器,例如“http://cassapi.gear.host/DOTAPI/api/values”,而不会影响“wwwroot”文件夹中的网站。

注意:当我在根文件夹中发布此 MVC 应用程序时,它工作正常。

我的 web.config 是这样的:-

config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

我的根配置:-

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "DOTAPI/{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }

我是一名 Windows 应用程序开发人员,并且是 MVC 的新手。所以,请调查一下并帮助我。

目前,当我调用网址“http://cassapi.gear.host/DOTAPI/”时,它会显示“您无权查看此目录或页面。”

【问题讨论】:

    标签: c# asp.net-mvc asp.net-web-api model-view-controller


    【解决方案1】:

    如果您收到拒绝访问错误,那么您必须为您的目录授予iis_users 组的权限。还有另一种方法可以实现您所需要的。您可以将 api 作为应用程序添加到您的主网站。以下是步骤。

    1. 转到 IIS。
    2. 右键单击您的主网站并选择Add Application
    3. 为您的 api 指定别名。
    4. 设置 API 文件夹的路径。

    然后您可以使用您提供的别名浏览您的 API。

    【讨论】:

    • 在测试时也尝试各种 URL 组合,有和没有api
    • @sunny verma 。如果我将其添加为应用程序并提供别名,它在 IIS 上运行良好。我的问题是在虚拟主机的情况下我无法做到这一点。没有添加应用程序的选项。我们可以添加一个子文件夹。但这样做后它不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 2016-07-01
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多