.NET MVC Core 2部署问题IIS 10



我正在尝试部署我的 asp.net MVC Core 2 站点到Windows Server 2016服务器2016服务器运行 iis 10 ,我是在应用程序日志中获取以下错误。

我已经研究了这个问题,并发现此.NET Core应用程序由于错误代码='0x80004005:80008083问题,该问题的答案是" vs2017 rc",该问题已发货。SDK(.NET Core 1.0.4 SDK 1.0.1),您还需要在服务器上更新框架。"

我尝试按照上述答案中的建议在服务器上同时安装SDK和运行时,但是当我导航到网站时,我仍会收到错误。

如何解决此问题?

Faulting application name: dotnet.exe, version: 2.0.25816.2, time stamp: 0x59e535ea
Faulting module name: coreclr.dll, version: 4.6.25815.2, time stamp: 0x59e2b767
Exception code: 0xc00000fd
Fault offset: 0x000000000008247a
Faulting process id: 0x1c68
Faulting application start time: 0x01d36aeaea2429cf
Faulting application path: C:Program Filesdotnetdotnet.exe
Faulting module path: C:Program FilesdotnetsharedMicrosoft.NETCore.App2.0.3coreclr.dll
Report Id: 100b3c83-7509-487e-b1cd-6a0357f8b7e7
Faulting package full name: 
Faulting package-relative application ID: 

运行以下命令显示了真实错误:

C:Windowssystem32>"C:Program Filesdotnetdotnet" C:inetpubwwwroot{YOUR_IIS_SITE_NAME}{YOUR_PROJECT_NAME}.dll

命令提示符的结果是以下内容告诉我我的连接字符串中有一个错误:

C:Windowssystem32>"C:Program Filesdotnetdotnet" C:inetpubwwwrootwww_projectx_comProjectX.dll
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
      User profile is available. Using 'C:UsersdarchualAppDataLocalASP.NETDataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58]
      Creating key {70b30c91-49df-45be-95cc-2e681b5cde76} with creation date 2017-12-04 16:34:08Z, activation date 2017-12-04 16:34:08Z, and expiration date 2018-03-04 16:34:08Z.
info: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[39]
      Writing data to file 'C:UsersdarchualAppDataLocalASP.NETDataProtection-Keyskey-70b30c91-49df-45be-95cc-2e681b5cde76.xml'.
Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: connectionString
   at Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(String value, String parameterName)
   at Microsoft.EntityFrameworkCore.SqlServerDbContextOptionsExtensions.UseSqlServer(DbContextOptionsBuilder optionsBuilder, String connectionString, Action`1 sqlServerOptionsAction)
   at ProjectX.Startup.<ConfigureServices>b__4_0(DbContextOptionsBuilder options) in C:VSOAvvenire SourceInternalProject XProjectXStartup.cs:line 35
   ... truncated for brevity ...

一旦解决了应用程序完美运行!

此外,请记住(在IIS上托管MVC Core应用程序时)以相应地更新您的程序。

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }
    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();
}

最后但并非最不重要的一点是,我需要通过添加新创建的SQL用户来修复连接字符串(它不会简单地使用集成安全性来工作):

"ConnectionStrings": {
    "DefaultConnection": "Server={theserver};Database={thedatabase};MultipleActiveResultSets=true;User Id={theusername};Password={thepassword};"
},

参考。https://stackoverflow.com/a/42363471/14777388

最新更新