【发布时间】:2016-02-22 09:56:21
【问题描述】:
我正在努力让我的 ASP.Net core 1 (asp.net 5 / MVC 6) 应用程序在我的网络服务器上的 IIS 中运行。我已经按照指南在服务器上完成了以下操作
- 通过 get.asp.net 安装 ASP.Net 5
- 安装 HttpPlatformHandler 1.2
我检查了我可以在服务器上运行 dnx 并且编译位是 64 位,并且应用程序池是“无托管代码”并且以 64 位运行。
我可以通过运行 web.cmd 并导航到 http://localhost:5000(或任何端口)在网络服务器上运行应用程序,但是当我尝试将应用程序设置为默认网站中的应用程序并浏览到它时(例如 @ 987654322@) 我收到 404 错误。我检查了物理路径是否指向 /MyMVC6App/wwwroot。我还检查了 webserver/handlers 部分是否已解锁。
我还创建了一个普通的 ASP.Net 5/Core 1 应用程序,并在 2 个不同的服务器上得到相同的 404 错误!
这是我的配置方法:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseApplicationInsightsRequestTelemetry();
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseIISPlatformHandler();
app.UseApplicationInsightsExceptionTelemetry();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
有什么想法吗?
【问题讨论】:
-
我还刚刚发现,如果我创建一个新网站(不是 Web 应用程序)并将其作为唯一的 Web 应用程序托管,我可以运行该应用程序。但是,由于我有其他 Web 应用程序(MVC 5 及更低版本),我不能这样做,因为我需要在不同的端口上运行新网站。
-
您能否确认当您尝试访问该 URL 时,IIS AppPool 是否启动了 dnx.exe?如果不是,则意味着问题出在 web.config 文件中的 HttpPlatform 配置上。 web.config 中的路径使用我认为的相对路径。如果它正在启动 dnx.exe 并且在您应该在 httpPlatform 配置中启用 stdoutLogEnabled="true" 以找出原因后很快就死了。
-
信息:Microsoft.Extensions.DependencyInjection.DataProtectionServices[0] 用户配置文件可用。使用 'C:\Windows\system32\config\systemprofile\AppData\Local\ASP.NET\DataProtection-Keys' 作为密钥存储库和 Windows DPAPI 来加密静态密钥。托管环境:生产现在正在监听:localhost:8465 应用程序已启动。按 Ctrl+C 关闭。 info: Microsoft.AspNet.Hosting.Internal.HostingEngine[1] 请求开始 HTTP/1.1 GET localhost/Extranet info: Microsoft.AspNet.Hosting.Internal.HostingEngine[2] 请求在 0.0656 毫秒内完成 404
-
您也可以粘贴您的配置方法吗?我会看看我是否可以在我的最后重现......刚刚注意到你正在将它作为一个应用程序在 IIS 上运行......他们说这是一个已知的事情......但是添加你的 MVC6app 作为路由的基础......就像/MVC6APP/{controller=Home}/...
-
Holy Moly - 如果我将路由模板更改为 Extranet/{controller=Home}/{action=Index}/{id?}"); 它可以工作 - css 搞砸了,但它可以工作 -怎么会!?
标签: iis asp.net-core-mvc