我构建了一个与 SQL DB 连接的新 .net Core Web API。我在将 API 与我的数据库连接时遇到问题我尝试了本地数据库"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB; Initial Catalog=ib; Integrated Security=SSPI",和远程数据库(请参阅 appsettings.json)。
远程:Microsoft SQL Server Express(64 位)11.0.2100.60 系统:Microsoft Windows NT 6.1 (7601)
可以使用 SQL Server Management Studio 或 Visual Studio SQL Server 对象资源管理器连接到两个数据库。我还有一个可用的 asp.net Web 应用程序,我在其中使用相同的(远程)连接字符串。
但是使用新的 Core Web API 我无法连接。没有下面的设置,也没有连接来自 NuGet 的 Scaffold-DBContext
如果您需要更多我的代码,您可以询问。非常感谢您的帮助。
Scaffold-DbContext "Connection String" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Run Code Online (Sandbox Code Playgroud)
启动文件
services.AddDbContext<ibContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Run Code Online (Sandbox Code Playgroud)
appsettings.json
"ConnectionStrings": {
"DefaultConnection": "Server=192.168.1.XXX\\SQL2012; Initial Catalog=IBCOREDB_XXX; User ID=XXXX;Password=XXXXX;",
},
Run Code Online (Sandbox Code Playgroud)
核心错误(远程数据库)
Exception thrown: 'System.Data.SqlClient.SqlException' in System.Data.SqlClient.dll
'iisexpress.exe' (CoreCLR: …Run Code Online (Sandbox Code Playgroud) 我有一个运行 SQL 数据库的 Net.Core 应用程序。连接字符串在环境变量中。
在本地 IIS 上,应用程序工作正常。
与 Docker-Container 相同的应用程序出现以下错误
失败:Microsoft.AspNetCore.Server.Kestrel[13] 连接 ID“0HLPO85V83VNO”,请求 ID“0HLPO85V83VNO:00000001”:应用程序引发了未处理的异常。System.PlatformNotSupportedException: 此平台不支持 LocalDB。
在 System.Data.SqlClient.SNI.LocalDB.GetLocalDBConnectionString(String localDbInstance)
在 System.Data.SqlClient.SNI.SNIProxy.GetLocalDBDataSource(String fullServerName, Boolean& error)
Docker 的环境变量: “DB_CONNECTION”:“Server=hc-XXX;Database=IB33DB-Core_XXX;User Id=sa;Password=XXX”
这是网络中的设置
启动文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using ib.api_core.Data;
using Microsoft.EntityFrameworkCore;
using ib.api_core.Models;
namespace ib.api_core
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { …Run Code Online (Sandbox Code Playgroud) 我的 asp.net-core 应用程序在 _Layout.cshtml 中有一个侧边栏。侧边栏是动态的,所以我需要 PageData。我尝试将 PageData 从我的 PagesMiddleware 传递到 View(我不想在每个 Controller 中为 View 转发 PageData)。
不想要这个:[PagesMiddleware] -> Controller -> _Layout.cshtml
页面中间件: context.Items.Add("pages", pages);
每个控制器: ViewData["Pages"] = TempData["pages"];
_布局: @ViewData["Pages"]
有没有这样的东西:[PagesMiddleware] -> -> _Layout.cshtml
页面中间件: ViewData["Pages"] = pages;
_布局: @ViewData["Pages"]
PageData 可以是字符串。如何在所有控制器中没有额外(冗余)代码的情况下将字符串从中间件传递到 _Layout 视图?