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

时间:2017-09-29 20:30:49

标签: c# mysql entity-framework

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

MySQL 5.7.19 Connector / NET 6.9.9

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

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

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

这是callstack:

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 settings)Unknown       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.Interception.InternalDispatcher.Dispatch(System.Data.Common.DbConnection target,System.Action操作,System.Data.Entity.Infrastructure.Interception.DbConnectionInterceptionContext interceptionContext,System.Action执行, System.Action执行)未知       EntityFramework.dll!System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open(System.Data.Common.DbConnection connection,System.Data.Entity.Infrastructure.Interception.DbInterceptionContext interceptionContext)Unknown       EntityFramework.dll!System.Data.Entity.Core.EntityClient.EntityConnection.Open()未知       EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(bool shouldMonitorTransactions)未知       EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction(System.Func func,System.Data.Entity.Infrastructure.IDbExecutionStrategy executionStrategy,bool startLocalTransaction,bool releaseConnectionOnSuccess)Unknown       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)Unknown       EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectQuery.System.Collections.Generic.IEnumerable.GetEnumerator.AnonymousMethod__0()未知       EntityFramework.dll!System.Data.Entity.Internal.LazyEnumerator.MoveNext()未知

1 个答案:

答案 0 :(得分:0)

Quatation是路径中的非法字符:

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

只需你可以检查它是否试图创建一个文件,或名称中带有"的目录