Ubuntu 16.10和.net核心MVC Web应用程序

时间:2017-04-26 23:51:11

标签: asp.net-mvc linux ubuntu asp.net-core-mvc .net-core

我尝试在Ubuntu 16.10上使用个人授权运行asp.net core mvc web应用程序。我已经安装并成功设置了nginx。我可以在这台服务器上恢复并运行mvc app,但我注册和登录有问题,似乎是数据库的问题。 Web应用程序只是web,用户注册和登录。此Web应用程序是在Visual Studio 2017中创建的,但如果我尝试在Ubuntu上创建Web应用程序,则结果相同。你能帮帮忙吗?所以有信息:

.NET命令行工具(1.0.3)

产品信息:版本:1.0.3

运行时环境:

操作系统名称:ubuntu

操作系统版本:16.10

OS平台:Linux

RID:ubuntu.16.10-x64

基本路径:/usr/share/dotnet/sdk/1.0.3

有一个错误: 失败:Microsoft.EntityFrameworkCore.Query.Internal.SqlServerQueryCompilationContextFactory [1]       迭代查询结果时数据库中发生异常。       System.NotSupportedException:此平台不支持关键字“集成安全性”。          在System.Data.SqlClient.SqlConnectionString..ctor(String connectionString)          在System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString,DbConnectionOptions previous)          at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key,DbConnectionPoolGroupOptions poolOptions,DbConnectionOptions& userConnectionOptions)          在System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey键)          at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value)          在Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection.CreateDbConnection()          在Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value()          在Microsoft.EntityFrameworkCore.Storage.RelationalConnection.d__31.MoveNext()

1 个答案:

答案 0 :(得分:1)

如果查看appSettings.json中指定的连接字符串,它会引用(localdb)\ mssqllocaldb,Trusted_Connection = True; 我不确定它是否支持mssqllocaldb,在它之上用于登录用户的集成安全性。

因此,为了避免mac / ubuntu中的问题,我们可以将db更改为在内存数据库中使用(如果没有必须运行的迁移,它将工作)或sqllite数据库。

/* In case if you want to run dotnet ef database update */
services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlite("Data Source=CM-starter-4")); 


/* or else */
    services.AddDbContext<ApplicationDbContext>(options =>
                    options.UseInMemoryDatabase());

为了利用这些,我们可以根据.csproj文件中的要求引用其中一个包。

 <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="1.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="1.1.0" />