Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
Asp.net core 404将asp.net核心托管的blazor webassembly部署到Netlify_Asp.net Core_Http Status Code 404_Web Deployment_Netlify_Blazor Webassembly - Fatal编程技术网

Asp.net core 404将asp.net核心托管的blazor webassembly部署到Netlify

Asp.net core 404将asp.net核心托管的blazor webassembly部署到Netlify,asp.net-core,http-status-code-404,web-deployment,netlify,blazor-webassembly,Asp.net Core,Http Status Code 404,Web Deployment,Netlify,Blazor Webassembly,我正在尝试将asp.net core托管的blazor webassembly应用程序部署到Netlify。我已将服务器项目的发布版本发布到桌面上的一个目录中,并将其上载到github。我将Netlify的发布目录设置为wwwroot,该站点的渲染效果很好。但是,如果我尝试调用api控制器,它将返回404。具体来说,以下是我的代码: //在客户端项目中注册Register.razor if(Model.Password.Length>=6&&Model.Password==Model.Confi

我正在尝试将asp.net core托管的blazor webassembly应用程序部署到Netlify。我已将服务器项目的发布版本发布到桌面上的一个目录中,并将其上载到github。我将Netlify的发布目录设置为wwwroot,该站点的渲染效果很好。但是,如果我尝试调用api控制器,它将返回404。具体来说,以下是我的代码:

//在客户端项目中注册Register.razor
if(Model.Password.Length>=6&&Model.Password==Model.ConfirmPassword)
{
等待HttpClient.PostAsJsonAsync(“api/Register/Post”,Model);
NavigationManager.NavigateTo(“/”);
}
//在我的控制器中
[路线(“api/注册”)]
公共类注册控制器:控制器
{
私有用户上下文用户上下文{get;set;}
private IHasher Hasher=new Pbkdf2Hasher();
公共注册表控制器(UserContext UserContext)
{
UserContext=UserContext;
}
[RequireHttps]
[HttpPost]
[路线(“邮政”)]
公共异步任务发布([FromBody]RegisterModel模型)
{
var user=newusermodel
{
Email=model.Email,
Password=Hasher.Hash(model.Password)
};
等待UserContext.AddAsync(用户);
等待UserContext.SaveChangesSync();
}
}
我发送的url请求是:。然而,我得到了404的回复。在本地主机上,它工作得很好。我在想象,为了让请求URL正常工作,我必须在某个地方更改一个设置。我试过寻找,但找不到指引。我需要改变什么?谢谢

编辑

这是我的客户项目的Program.cs文件

公共类程序
{
公共静态异步任务主(字符串[]args)
{
var builder=WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add(“应用程序”);
builder.Services.AddTransient(sp=>new HttpClient{
BaseAddress=新Uri(builder.HostenEnvironment.BaseAddress)});
builder.Services.AddBlazoredLocalStorage();
builder.Services.AddAuthorizationCore();
builder.Services.addScope();
builder.Services.addScope();
等待builder.Build().RunAsync();
}
}

目标框架是netstandard2.1,它是webassembly 3.2.0。

Netlify是一个静态文件主机。他们不在服务器上运行任何服务器端应用程序,如.NET core

因此,您可以在Netlify上托管Blazor客户端应用程序,但如果您希望运行服务器端代码,则必须将其托管在其他地方

如果你正在为你的API寻找免费的主机,有一些云提供商有一个免费的层。Azure有一些限制的免费应用服务,谷歌云有一个免费的微VPS可以托管一个小应用,heroku也有一个免费的产品


另一种选择是来自Digital Ocean、Vultr或Linode的廉价VPS。

Netlify是静态文件主机。他们不在服务器上运行任何服务器端应用程序,如.NET core

因此,您可以在Netlify上托管Blazor客户端应用程序,但如果您希望运行服务器端代码,则必须将其托管在其他地方

如果你正在为你的API寻找免费的主机,有一些云提供商有一个免费的层。Azure有一些限制的免费应用服务,谷歌云有一个免费的微VPS可以托管一个小应用,heroku也有一个免费的产品


来自Digital Ocean、Vultr或Linode的廉价VPS是另一种选择。

好的,我包括了Program.cs。是因为我的基本地址吗?现在我查看了index.html文件,基本href是“/”您是否正在尝试在Netlify上托管控制器/API?你不能那样做。Netlify不在it服务器上运行dotnet核心代码,太棒了。有什么办法吗?好的,我包括了Program.cs。是因为我的基本地址吗?现在我查看了index.html文件,基本href是“/”您是否正在尝试在Netlify上托管控制器/API?你不能那样做。Netlify不在it服务器上运行dotnet核心代码,太棒了。有什么办法吗?谢谢!我会调查的谢谢!我会调查的