ASP.NET WebAPI 和 Razor Pages 位于同一 Web 位置

我开发了一个只包含一个 WebApi 的项目,它是通过 VS WebDeploy 部署在 webspace 的根目录下的。有了新的需求,我还需要在同一个网络空间(Razor 页面)中托管一个网络应用程序。我决定在我的 Visual Studio 解决方案中将项目分开,并将 API 发布到{root}/webapi/文件夹中,并将 Razor webapp发布到文件{root}夹中。

我首先将 webapi 重新发布到新文件夹位置并进行测试 API 调用(将文件夹位置添加为 url 的一部分,因此 http:/example.com/ webapi /route),但服务器返回Server Error in '/' Application. Runtime Error.

我想知道在将项目移动到子文件夹时是否需要更改其他一些参数,欢迎使用任何其他解决方案来解决我正在尝试解决的问题。

PS:我无权访问主机的 IIS 服务器设置


慕码人2483693
浏览 189回答 1
1回答

MMMHUHU

我不是在 IIS 上托管 .NET Core 应用程序的专家,但如果不允许更改 IIS 服务器配置,则可能无法使此设置工作。我假设您需要将嵌套的 API 项目添加为网站,以使 IIS 实际运行它。所以,看起来您需要某种多租户。由于您的问题是关于 Razor Pages,我认为我们在这里处理的是 ASP.NET Core,而不是经典的 ASP.NET(由您的标签建议)。在 ASP.NET Core 中,使用应用程序分支设置多租户应用程序非常容易。在这种情况下,您的 Razor Pages 主项目的Startup.Configure方法将如下所示:public void Configure(IApplicationBuilder app){    app.Map("/webapi", ConfigureWebApiBranch);    // configuration of your Razor Pages app pipeline...    app.UseMvc(...);}public void ConfigureWebApiBranch(IApplicationBuilder app){    // configuration of your Web Api app pipeline...    app.UseMvc(...);}当然,ConfigureWebApiBranch可以驻留在另一个程序集中,因此您可以保持两个项目在逻辑上分开。关于此解决方案有一个问题。main 和 web api 分支共享在主项目的Startup.ConfigureServices中配置的同一个 DI 容器。但这也可以在必要时修复。您可以在此处找到对此的详细说明。
打开App,查看更多内容
随时随地看视频慕课网APP