我有一个简单的.net核心网络api,在客户端具有angular应用程序。
当我在本地调用我的api(http://localhost:5000/api/auth/register)时,它可以正常工作。将应用程序部署到天蓝色并调用(https://myapp.azurewebsites.net/api/auth/register)之后,我收到了400 Bad Request错误,没有任何消息。
我试图在azure门户上配置应用程序服务和sql服务器,但是我不确定要更改什么。
AuthController.cs
[HttpPost("register")]
public async Task<IActionResult> Register(UserToRegisterDto userToRegister)
{
if (await AuthService.UserExists(userToRegister.UserName))
{
return BadRequest("Username already exists");
}
var userToCreate = new User() { UserName = userToRegister.UserName };
await AuthService.Register(userToCreate, userToRegister.Password);
// TODO: Change to return CreatedAtRoute
return StatusCode(201);
}
AuthService.cs
public async Task<User> Register(User user, string password)
{
GenerateHashedPassword(user, password);
await usersRepository.Create(user);
return user;
}
auth.service.ts
private baseUrl = environment.apiUrl + 'auth/';
public register(userToRegister: UserToRegister) {
return this.http.post(this.baseUrl + 'register', userToRegister);
}
environment.ts
export const environment = {
production: false,
apiUrl: 'http://localhost:5000/api/'
};
environment.prod.ts
export const environment = {
production: true,
apiUrl: 'api/'
};
答案 0 :(得分:1)
首先检查您的Azure Web应用程序中的日志,然后在访问Web应用程序时会有日志
在天蓝色的Web应用程序中捕获第二次检查异常,任何发生的异常都会通过状态代码和详细信息进行捕获
最后尝试像这样更改您的api网址。但是我不认为错误来自此设置
export const environment = {
production: true,
apiUrl: 'https://myapp.azurewebsites.net/api/'
};
在Azure Web应用程序中部署新版本时,更新为自动运行迁移,您可以添加以下代码段
public class Startup
{
...
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MyDbContext>(...);
...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
UpdateDatabase(app);
...
}
private static void UpdateDatabase(IApplicationBuilder app)
{
using (var serviceScope = app.ApplicationServices
.GetRequiredService<IServiceScopeFactory>()
.CreateScope())
{
using (var context = serviceScope.ServiceProvider.GetService<MyDbContext>())
{
context.Database.Migrate();
}
}
}
}