我使用Angular模板创建了一个新的ASP.NET Core 2.1 Web应用程序。
以调试和发布模式在本地成功运行。
创建了一个发布到文件系统的配置文件,它已成功发布到本地文件夹。
已安装:.NET Core 2.1 Runtime & Hosting Bundle for Windows
然后在IIS中,
.net CLR
=“没有托管代码” Default Web Site
下创建一个新应用程序,该应用程序使用我创建的新应用程序池,并指向文件系统,并指向在VS 2017帮助下发布的已发布目录因此我在web.config
文件中将environmentVariable
更改为“开发”以查看错误
<aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
我不知道下一步该怎么做,我已经尝试在Stack-overflow和Google上寻找解决方案 here,here等。
当我在stdoutLogEnabled
中将true
设置为web.config
时,我会在应用程序的日志中看到
托管环境:生产 内容根路径:C:\ prodSites \ beedeal 现在收听:http://127.0.0.1:26261 应用程序已启动。按Ctrl + C关闭。 警告:Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware 3 无法确定要重定向的https端口。 失败:Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware 1 执行请求时发生未处理的异常。 System.InvalidOperationException:SPA默认页面中间件无法返回默认页面'/index.html',因为找不到该页面,并且没有其他中间件处理该请求。 您的应用程序正在生产模式下运行,因此请确保已发布该应用程序,或者您已手动构建了SPA。另外,您可能希望切换到开发环境。
在Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware。<> c__DisplayClass0_0.b__1(HttpContext 上下文,下一个Func`1) Microsoft.AspNetCore.Builder.UseExtensions。<> c__DisplayClass0_1.b__1(HttpContext 上下文) Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext 上下文) Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext) Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext 上下文) Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext 上下文) Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke(HttpContext 上下文)
但没有找到解决方案。
答案 0 :(得分:0)
接着this,我终于成功地将应用程序部署到IIS,
我认为我无法正常工作的问题在于我将新的.net core
网站放置在
Default Web Site
IIS文件夹,并且对于.net core
应用程序是不允许的(您不能在default web site
文件夹下混合.net核心应用程序和.net Framework应用程序(这是为了.net framework
个应用程序))。
.net core
应用程序使用不同的配置+需要与no managed code
应用程序池一起运行。