我试图通过将其托管在IIS上,在Remote PC上运行.net核心Web Api。我可以在本地运行应用程序。通过PostMan运行Api可以正常工作。
我也可以通过
使用IP地址运行应用程序UseUrls("http://localhost:5000", "http://localhost:21868","http://*.*.*.*:5000")
program.cs
中的(使用kestral的自托管应用程序)。 在 applicationhost.config
中完成设置<binding protocol="http" bindingInformation="*:21268:localhost" />
我试图通过在IIS上托管API来在远程PC上运行而不调试,但是我无法做到这一点?
编辑:
尝试托管时出现错误-
无法连接到Web服务器iisexpress
and
无效的URl:无法解析主机名。
答案 0 :(得分:0)
缺少的是-在设置Visual Studio 2017/2019时启用开发时间IIS支持,因为在 IIS 。
此后,我可以在“项目属性”的IIS
中设置启动。在链接下方,我发现对在IIS上托管核心应用程序很有帮助。
https://devblogs.microsoft.com/aspnet/development-time-iis-support-for-asp-net-core-applications/
答案 1 :(得分:0)
编辑您的 Startup.cs 文件
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
if (env.IsProduction() || env.IsStaging())
{
app.UseExceptionHandler("/Error/index.html");
}
// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger(c =>
{
c.RouteTemplate = "swagger/{documentName}/swagger.json";
});
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.RoutePrefix = "swagger";
c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1");
// custom CSS
c.InjectStylesheet("/swagger-ui/custom.css");
});
app.Use(async (ctx, next) =>
{
await next();
if (ctx.Response.StatusCode == 204)
{
ctx.Response.ContentLength = 0;
}
});
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
app.UseCors();
}