Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# mysql.net连接器抛出;“路径中的非法字符”;_C#_Mysql_Entity Framework - Fatal编程技术网

C# mysql.net连接器抛出;“路径中的非法字符”;

C# mysql.net连接器抛出;“路径中的非法字符”;,c#,mysql,entity-framework,C#,Mysql,Entity Framework,我正在使用mysql和EF(数据库优先)构建一个asp.net应用程序 MySQL 5.7.19 连接器/网络6.9.9 在我第一次调用DB时,mysql连接器抛出了一个“路径中的非法字符”异常 这台机器上的其他应用程序工作正常。另一台开发人员机器上的相同应用程序工作正常 这似乎不是连接字符串问题。它抛出错误的路径是c:\windows\system32\inetsrv\w3wp.exe-ap \“DefaultAppPool”-这当然不是一个有效的路径,它是asp.net应用程序正在运行的应用

我正在使用mysql和EF(数据库优先)构建一个asp.net应用程序

MySQL 5.7.19 连接器/网络6.9.9

在我第一次调用DB时,mysql连接器抛出了一个“路径中的非法字符”异常

这台机器上的其他应用程序工作正常。另一台开发人员机器上的相同应用程序工作正常

这似乎不是连接字符串问题。它抛出错误的路径是c:\windows\system32\inetsrv\w3wp.exe-ap \“DefaultAppPool”-这当然不是一个有效的路径,它是asp.net应用程序正在运行的应用程序池的命令行

这是调用堆栈:

mscorlib.dll!System.IO.Path.CheckInvalidPathChars(string path, bool checkAdditional)    Unknown
mscorlib.dll!System.IO.Path.GetFileName(字符串路径)未知 MySql.Data.dll!MySql.Data.MySqlClient.MySqlConnectAttrs.ProgramName.get()未知 [本机到托管转换]
[管理到本机转换]
MySql.Data.dll!MySql.Data.MySqlClient.NativeDriver.SetConnectAttrs()未知 MySql.Data.dll!MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(bool reset)未知 MySql.Data.dll!MySql.Data.MySqlClient.NativeDriver.Open()未知 MySql.Data.dll!MySql.Data.MySqlClient.Driver.Open()未知 MySql.Data.dll!MySql.Data.MySqlClient.Driver.Create(MySql.Data.MySqlClient.MySqlConnectionStringBuilder设置)未知 MySql.Data.dll!MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()未知 MySql.Data.dll!MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()未知 MySql.Data.dll!MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()未知 MySql.Data.dll!MySql.Data.MySqlClient.MySqlPool.GetConnection()未知 MySql.Data.dll!MySql.Data.MySqlClient.MySqlConnection.Open()未知 EntityFramework.dll!System.Data.Entity.Infrastructure.InternalDispatcher.Dispatch(System.Data.Common.DbConnection目标,System.Action操作,System.Data.Entity.Infrastructure.Interception.DbConnectionInterceptionContext interceptionContext interceptionContext,System.Action执行,System.Action执行)未知 EntityFramework.dll!System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open(System.Data.Common.DbConnection连接,System.Data.Entity.Infrastructure.Interception.DbInterceptionContext interceptionContext)未知 EntityFramework.dll!System.Data.Entity.Core.EntityClient.EntityConnection.Open()未知 EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectContext.EnsureReconnection(bool shouldMonitorTransactions)未知 EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction(System.Func Func,System.Data.Entity.Infrastructure.IDbExecutionStrategy executionStrategy executionStrategy,bool startLocalTransaction,bool ReleaseConnectionUnsuccess)未知 EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectQuery.GetResults.AnonymousMethod__5()未知 EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectQuery.GetResults(System.Data.Entity.Core.Objects.MergeOption?forMergeOption)未知 EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectQuery.System.Collections.Generic.IEnumerable.GetEnumerator.AnonymousMethod__0()未知 EntityFramework.dll!System.Data.Entity.Internal.LazyEnumerator.MoveNext()未知


Quatation是路径中的非法字符:

c:\windows\system32\inetsrv\w3wp.exe -ap \"DefaultAppPool
                                          ^              

您只需在尝试创建文件或目录时使用
在其名称中

是的,但我没有创建此字符串,它位于mysql连接器/驱动程序堆栈的深处。问题是为什么mysql连接器试图调用上述字符串上的Path.GetFilename?我该如何解决这个问题?@DavidWGray-你有什么进展吗?我看到了同样的行为?@Graeme Wilson-是和否。我在mysql bug数据库中发现了一个非常古老且未修复的问题。但事实证明,此异常被正确捕获,因此与VS调试器存在一些奇怪的交互,您无法在第一次出现异常时运行。我一直在关闭调试器中的异常,直到我通过解除阻止我的初始连接为止。@DavidWGray我们只在PerfView中看到异常,但在我们的生产环境中一分钟会看到几次。看起来它在MySQL.Data 6.10.6中已经修复,所以我们将尝试升级客户端。它依赖于.NET4.5.2,因此我们需要从当前的.NET4.0DAL升级一些工作。