我正在使用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()未知
答案 0 :(得分:0)
Quatation是路径中的非法字符:
c:\windows\system32\inetsrv\w3wp.exe -ap \"DefaultAppPool
^
只需你可以检查它是否试图创建一个文件,或名称中带有"
的目录