我尝试在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()
答案 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" />