IIS 上的 Asp.net Core 2 发布项目只返回一个空白页?
Posted
技术标签:
【中文标题】IIS 上的 Asp.net Core 2 发布项目只返回一个空白页?【英文标题】:Asp.net Core 2 publish project on IIS returns just a blank page? 【发布时间】:2018-04-24 15:43:44 【问题描述】:我正在开发一个 Asp.net core 2.0 项目,我发布它并希望在 IIS 上运行。 当项目第一次在 IIS 上运行时,数据库会自动创建并在 IIS 上播种一些表,一切正常。但是什么都不会显示,只是返回一个空白页面而没有任何错误。
web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\LibraryProject.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
<!--ProjectGuid: b874d2d9-471b-494a-828c-257173c5a413-->
和 Program.cs :
public class Program
public static void Main(string[] args)
var host = BuildWebHost(args);
using (var scope = host.Services.CreateScope())
var services = scope.ServiceProvider;
try
var userManager = services.GetRequiredService<UserManager<ApplicationUser>>();
var roleManager = services.GetRequiredService<RoleManager<ApplicationRole>>();
var context = services.GetRequiredService<ApplicationDbContext>();
SeedData.Seeding(userManager, roleManager, context);
catch (Exception ex)
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "An error occurred while seeding the database.");
host.Run();
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
我还在其他 dll 附近的发布文件夹中创建了 logs\stdout
文件夹。
我从这个link 设置了 IIS。我的项目出了什么问题?
【问题讨论】:
有什么答案吗??!!! 1) 我们在这里没有报酬,所以当你得到帮助时你会得到帮助。不要讨厌。 2)空白页通常是 404,因为您必须配置状态码中间件才能实际处理 404 之类的事情。它也可能是 401 或 403 之类的东西。 3) 无论如何,这里没有足够的帮助你。在浏览器中进行自己的研究、添加日志记录、检查来自开发者控制台的响应。 @ChrisPratt 非常感谢,我的项目由 asp.net core 1.1 创建和开发,然后迁移到 asp.net core 2。这可能是问题吗? 也许吧。也许不吧。首先找出实际发生了什么:这是 404 吗?如果是这样,请检查您的路由。这是401还是403?检查您的身份验证。它实际上是否以 200 的形式返回但仍为空白?检查你的行动/观点。你有任何客户端错误吗?可能是 JS 库或代码阻塞。可能有一千种不同的原因。再次,做你自己的调查。找出问题后,如果您仍需要帮助,我们可能会帮助您解决问题。 如果将 stdoutLogEnabled="false" 更改为 stdoutLogEnabled="true",您可以获得更好的调试输出 【参考方案1】:如果您已从当前模板集创建项目,则 Application Insights 已启用。这为我修复了它:
在您的 Program.cs 中将以下方法添加到 WebHost.CreatDefaultBuilder:
.UseApplicationInsights()
在这里找到:https://developercommunity.visualstudio.com/content/problem/92979/some-aspnet-core-projects-fail-to-add-the-applicat.html
【讨论】:
【参考方案2】:我在这里玩游戏有点晚了,但我没有看到其他人回答。希望这会对某人有所帮助。
当您只看到一个空白页并且除了空白页之外没有其他响应时,这可能是由以下两种情况之一引起的。我相信还有其他人,但这是我见过的两个:
-
损坏的 web.config
与 IIS 冲突的 web.config。当您的 IIS 配置中锁定特定部分时,可能会发生这种情况。
【讨论】:
以上是关于IIS 上的 Asp.net Core 2 发布项目只返回一个空白页?的主要内容,如果未能解决你的问题,请参考以下文章
从 IIS 上的 ASP.NET Core 应用程序请求超时
小5聊Asp.Net Core基础之发布不成功或者覆盖IIS上的DLL提示程序正在打开