Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用OWIN托管html文件_C# - Fatal编程技术网

C# 使用OWIN托管html文件

C# 使用OWIN托管html文件,c#,C#,我正在尝试创建一个控制台应用程序作为webapi的主机。它工作正常,为API控制器服务。我还想向同一控制台应用程序添加一个HTML文件,并使用Microsoft.OWIN.StaticFiles中间件和StartUp.cs中的以下代码将其托管 public void Configuration(IAppBuilder appBuilder) { HttpConfiguration config = new HttpConfiguration();

我正在尝试创建一个控制台应用程序作为webapi的主机。它工作正常,为API控制器服务。我还想向同一控制台应用程序添加一个HTML文件,并使用Microsoft.OWIN.StaticFiles中间件和StartUp.cs中的以下代码将其托管

    public void Configuration(IAppBuilder appBuilder)
    {
        HttpConfiguration config = new HttpConfiguration();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "{controller}/{action}"
        );

        appBuilder.UseWebApi(config);

        string exeFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
        string webFolder = Path.Combine(exeFolder,"/TestFolder");
        appBuilder.UseStaticFiles(webFolder);
    }
但是当我尝试使用Url浏览页面时,我得到了一个错误

未找到与请求URI匹配的HTTP资源。未找到与名为“testfolder”的控制器匹配的类型


似乎名为TestFolder的文件夹被视为API控制器。有可能实现这样的目标吗?或者我在这里遗漏了什么?

我能够解决这个问题。我不得不更改路由模板以添加一个常量前缀“api”。因此,新的路由模板成为:

        HttpConfiguration config = new HttpConfiguration();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}"
        );
注意“api”关键字的使用。这将区分我的两个请求,因为系统现在知道,只有当url包含关键字时,它才需要查找API控制器。因此,当我需要发送api请求时,使用

对于html页面,使用