ASP.NET Core MVC MySQL服务器连接

量子物理学

我在尝试建立与我在ASP.NET Core MVC 3.1中使用Windows Server 2019设置的服务器的连接时遇到问题。

我在服务器上安装的唯一东西是MySQL套件和IIS。该服务器也使用VirtualBox托管在本地计算机上,并使用桥接适配器进行设置。

使用Visual Studio中的默认MVC选项创建了ASP.NET Core MVC项目。这里没有第三方服务。

在ASP.NET Core中,连接字符串如下所示:

"ConnectionStrings": {
     "ApplicationContext": "Server=<server IP/host name>;Initial Catalog=testdatabase;User ID=testuser;Password=testpassword;"
}

使用上面的连接字符串运行项目时,我的浏览器中出现以下错误:

Win32Exception:系统找不到指定的文件。位置不明

SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。(提供者:TCP提供程序,错误:0-连接尝试失败,因为一段时间后连接方未正确响应,或者由于连接主机未能响应而建立连接失败。)Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject,uint waitForMultipleObjectsTimeout,bool allowCreate,bool onlyOneCheckConnection,DbConnectionOptions userOptions,DbConnectionInternal连接)

但是,我无法为自己的生活弄清楚为什么这行不通。我已经看了很多互联网,但是对ASP.NET与MySQL服务器的交互方式以及是否使用了错误的参数却不甚了解。我尝试使用其他参数,例如,Trusted_Connection=True/False;MultipleActiveResultSets=True/False;希望产生任何不同的结果,但仍然没有效果(我特别提到了这两个,因为它们默认出现)。

为了测试服务器是否是罪魁祸首,我使用带有PDO的PHP v7复制了上面的连接字符串。

<?php
$server = "<server IP/host name>";
$port = 3306;
$db = "testdatabase";
$username = "testuser";
$password = "testpassword";

try {
    $conn = new PDO("mysql:host=$server;port=$port;dbname=$db", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected";
} catch (PDOException $err) {
    echo $err;
}

if ($conn) {
    $query = "SELECT * FROM testTable";
    $result = $conn->query($query);
} else {
    echo "Query failed";
}

foreach ($entity as $result) {
    echo "<br />" . $result["Id"];
}
?>

我可以确认此PHP代码可以100%运行。

此外,我还测试了使用Azure MySQL以及使用Azure中创建的生成的连接字符串建立服务器连接的过程。这也可以100%使用。

这使我相信我的Windows Server是罪魁祸首,它可能与被禁用/阻止的一项或多项特定服务有关。但是同时,如果PHP代码可以建立连接并获取数据,那么肯定不是由Connection String代码引起的吗?

我认为问题可能与我的Controller代码中的逻辑有关。

如果有人能提供一些见识,我将不胜感激。这可能只是超级简单的东西。

布拉德利·格兰杰

由于获得SqlException,您必须尝试使用System.Data.SqlClient连接(到MySQL Server)Microsoft.Data.SqlClient不支持 这些仅适用于Microsoft SQL Server。

安装MySqlConnector并使用MySqlConnection该类建立连接。有关完整的连接字符串参考,请参见https://mysqlconnector.net/connection-options/,但最简单的连接字符串为"Server=<server IP/host name>;Database=testdatabase;User ID=testuser;Password=testpassword;"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将asp net core MVC连接到另一个asp net core SignalR服务器

带有 ASP.NET Core MVC 控制器的 Blazor 服务器,验证问题

ASP.NET Core MVC MySQL身份

ASP.NET Core MVC 2:NameValueCollection 实例在服务器端为空

在服务器端验证 ASP.Net Core MVC 后坚持 IEnumerable<T>

ASP.NET Core 3.1 MVC返回AmbiguousMatchException,服务器错误500

如何从ASP.NET Core服务器连接到SignalR服务器并保持打开状态?

检测到与ASP.NET SignalR服务器的连接尝试。该客户端仅支持连接到ASP.NET Core SignalR服务器

在ASP.net MVC Signal R中连接客户端服务器

ASP.NET MVC 错误消息“无法连接到 Visual Studio 开发服务器”。

在 ASP.NET CORE 上使用服务器发送的事件时如何检测断开连接?

使用开放ID连接服务器在ASP.NET Core中检索声明

如何使用 ASP.NET Core API 连接 microsoft sql 服务器

知道与我的服务器(域)的连接在 ASP.NET Core 中的来源

ASP.NET Core服务器端验证失败导致Microsoft.AspNetCore.Mvc.SerializableError

服务器验证失败后,模式中的js停止工作ASP.NET MVC Core

XSRF防伪:Asp.Net Core 2 WebApi(非MVC)+单独的Angular服务器是可能的吗?

Infragistics IgniteUI IGFileUpload不会将文件上传到ASP.NET MVC CORE 3.0中的服务器

无法将具有EFCore Mysql提供程序的Docker中的Asp.net Core WebApi连接到主机服务器上的非Docker Mysql

在 ASP.NET Core MVC AddControllers 配置期间注册服务

如何从HttpContext获取ASP.NET Core MVC筛选器

在ASP.NET Core MVC的操作级别压缩筛选器

ASP.NET MVC Core Azure Blob图像缩放器

ASP.NET Core MVC筛选器是否单例?

ASP.NET MVC请求服务器变量

ASP NET MVC 5从服务器删除文件

ASP.NET MVC服务器端打印

自己的认证和授权服务器asp net core

Blazor,ASP.NET Core托管与ASP.NET Core中的服务器端