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

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

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

.NET 命令行工具 (1.0.3)

产品信息:版本:1.0.3

运行时环境:

操作系统名称:ubuntu

操作系统版本:16.10

操作系统平台: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) 在 System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey 键、DbConnectionPoolGroupOptions poolOptions、DbConnectionOptions 和 userConnectionOptions) 在 System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey 键) 在 System.Data.SqlClient.SqlConnection.set_ConnectionString(字符串值) 在 Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection.CreateDbConnection() 在 Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value() 在 Microsoft.EntityFrameworkCore.Storage.RelationalConnection.d__31.MoveNext()

最佳答案

如果查看 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" />

关于asp.net-mvc - Ubuntu 16.10 和 .net 核心 MVC Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43646374/

相关文章:

c# - Controller 中 id 的值始终相同

linux - Grep 在 "S+"状态启动

ubuntu - php.ini 未在 Ubuntu 16.04.3 LTS 上重新加载

python - Boost:Python: undefined symbol :_ZN5boost6python15instance_holder8allocateEP7_objectmmm

eclipse - 如何在 Ubuntu 中卸载 opencv?

asp.net-mvc - Ninject 单例范围

asp.net - 如何根据用户所处的角色创建具有不同显示的 View ?

javascript - JavaScript/jQuery 的工作日和时间选择器

linux - 从已编译的二进制文件中获取宏值(带调试)

linux - 将用户空间缓冲区传递给内核