当前位置:编程学习 > C#/ASP.NET >>

用.net连接MYSQL出错

我下载了dll 并且添加了provider 先把我的webconfig贴出来给大家
<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
    <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>
    <system.web>
        <customErrors mode="Off" />
        <compilation debug="true" targetFramework="4.0">
            <assemblies>
                <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
                <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                <add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            </assemblies>
            <buildProviders>
                <add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider" />
            </buildProviders>
        </compilation>
    </system.web>
    <system.data>
        <DbProviderFactories>
            <remove invariant="MySql.Data.MySqlClient" />
            <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
        </DbProviderFactories>
    </system.data>
    <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
            <parameters>
                <parameter value="v11.0" />
            </parameters>
        </defaultConnectionFactory>
    </entityFramework>
    <connectionStrings>
        <add name="fb131xEntities" connectionString="metadata=res://*/App_Code.FBDS.csdl|res://*/App_Code.FBDS.ssdl|res://*/App_Code.FBDS.msl;provider=MySql.Data.MySqlClient;provider connection string="server=fb131x.db.8808454.hostedresource.com;user id=fb131x;password=aA!259214;persist security info=True;database=fb131x"" providerName="System.Data.EntityClient" />
    </connectionStrings>
</configuration>

代码其实在我本地(vs内置的服务器) 运行没问题。。。但是一传到服务器(不管是我GD的虚拟主机 还是amazon的VPS)都出错。。。一开始 我知道我没有添加DbProviderFactories 后来我添加了 就出现了空指针错误
我试了6.3.5和6.6.4 2个版本的Mysql连接器(那个dll,当时换dll的时候也把webconfig对应的地方修改了) 都是同样的错
Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[NullReferenceException: Object reference not set to an instance of an object.]
   MySql.Data.MySqlClient.MySqlClientFactory.get_MySqlDbProviderServicesInstance() +126
   MySql.Data.MySqlClient.MySqlClientFactory.System.IServiceProvider.GetService(Type serviceType) +39
   System.Data.Common.DbProviderServices.GetProviderServices(DbProviderFactory factory) +89
   System.Data.Metadata.Edm.Loader.InitializeProviderManifest(Action`3 addError) +174
   System.Data.EntityModel.SchemaObjectModel.Schema.HandleAttribute(XmlReader reader) +301
   System.Data.EntityModel.SchemaObjectModel.SchemaElement.ParseAttribute(XmlReader reader) +121
   System.Data.EntityModel.SchemaObjectModel.SchemaElement.Parse(XmlReader reader) +106
   System.Data.EntityModel.SchemaObjectModel.Schema.HandleTopLevelSchemaElement(XmlReader reader) +49
   System.Data.EntityModel.SchemaObjectModel.Schema.InternalParse(XmlReader sourceReader, String sourceLocation) +984
   System.Data.EntityModel.SchemaObjectModel.Schema.Parse(XmlReader sourceReader, String sourceLocation) +245
   System.Data.EntityModel.SchemaObjectModel.SchemaManager.ParseAndValidate(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths, SchemaDataModelOption dataModel, AttributeValueNotification providerNotification, AttributeValueNotification providerManifestTokenNotification, ProviderManifestNeeded providerManifestNeeded, IList`1& schemaCollection) +472
   System.Data.Metadata.Edm.Loader.LoadItems(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths) +162
   System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, String& providerManifestToken, Memoizer`2& cachedCTypeFunction) +203
   System.Data.Metadata.Edm.StoreItemCollection..ctor(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths) +305
   System.Data.Metadata.Edm.StoreMetadataEntry.LoadStoreCollection(EdmItemCollection edmItemCollection, MetadataArtifactLoader loader) +129
   System.Data.Metadata.Edm.MetadataCache.LoadItemCollection(IItemCollectionLoader`1 itemCollectionLoader, T entry) +165
   System.Data.Metadata.Edm.MetadataCache.GetOrCreateStoreAndMappingItemCollections(String cacheKey, MetadataArtifactLoader loader, EdmItemCollection edmItemCollection, Object& entryToken) +245
   System.Data.EntityClient.EntityConnection.LoadStoreItemCollections(MetadataWorkspace workspace, DbConnection storeConnection, DbProviderFactory factory, DbConnectionOptions connectionOptions, EdmItemCollection edmItemCollection, MetadataArtifactLoader artifactLoader) +312
   System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections) +802
   System.Data.EntityClient.EntityConnection.InitializeMetadata(DbConnection newConnection, DbConnection originalConnection, Boolean closeOriginalConnectionOnFailure) +11108961
   System.Data.EntityClient.EntityConnection.Open() +198
   System.Data.Objects.ObjectContext.EnsureConnection() +97
   System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options) +651
   System.Data.Entity.Internal.InternalContext.SaveChanges() +218
   test_data.Page_Load(Object sender, EventArgs e) +231
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064
Exception

--------------------编程问答-------------------- --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- LZ  你的mysql数据库放在哪里的??
是不是ip写错了??
你放服务器上之后在连接语句中要更换相应的ip地址的

还有可以参考下
asp.net中连接MYSQL --------------------编程问答--------------------
引用 4 楼 yyl8781697 的回复:
LZ  你的mysql数据库放在哪里的??
是不是ip写错了??
你放服务器上之后在连接语句中要更换相应的ip地址的

还有可以参考下
asp.net中连接MYSQL


本地测试没问题(本地用的也是远程的数据库)。。。坑定不是写错了。。。 --------------------编程问答-------------------- 下载个mysql.data.dll就成了。和sqlserver用法一样。 --------------------编程问答--------------------
引用 6 楼 SeanDing1989 的回复:
下载个mysql.data.dll就成了。和sqlserver用法一样。


我当然是用了mysql.data.dll.....就是本地正常 但是服务器就是出错
难道除了把dll放到bin 和修改webconfig 需要我再服务器上安装什么么? --------------------编程问答-------------------- 服务器要安装驱动吧 --------------------编程问答--------------------
引用 4 楼 yyl8781697 的回复:
LZ  你的mysql数据库放在哪里的??
是不是ip写错了??
你放服务器上之后在连接语句中要更换相应的ip地址的

还有可以参考下
asp.net中连接MYSQL
同意! --------------------编程问答-------------------- 我也用.net连接mysql 没有任何问题呀。
--------------------编程问答-------------------- 服务器要安装驱动吧 ,安装了没MySqlDrives --------------------编程问答-------------------- 驱动是要装滴 --------------------编程问答-------------------- 多半是驱动没有安装 --------------------编程问答-------------------- MySql.Data.MySqlClient 这种方式是要装驱动的。
设置的相关帖子:http://www.cnblogs.com/huayangmeng/archive/2011/04/06/2006866.html --------------------编程问答-------------------- MYSQL常用技巧
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,