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