webForumDet fria alternativet

Net Connector MySQL + Webhotell

.NET

17 svar · 1 450 visningar · startad av silversoft

Medlem sedan feb. 20079 inlägg
Frågan#1

Kommer jag kunna använda mig av Net Connector från MySQL på ett webhotell om jag lägger till MySql.Data.dll i bin foldern?

Vad mer måste göras förutom att lägga filen där?

(Föröskte starta detta på en dator utan att ha installerat Connectorn, men fick felmeddelandet "Unable to find the requested .Net Framework Data Provider")

Medlem sedan dec. 2004135 inlägg
#2

Ja, det kan du (om webbhotellet har stöd för ASP.NET förståss, och om de inte har några speciella hyss för sig - jag (kan) gör(a) så på mitt webbhotell). Sedan ska det bara vara att tuta och köra.

Medlem sedan feb. 20079 inlägg
#3

Du har ingen aning om varför jag får det där felmeddelandet (det funkar fint när jag har installerat connectorn)

Medlem sedan dec. 2004135 inlägg
#4

silversoft skrev:

Du har ingen aning om varför jag får det där felmeddelandet (det funkar fint när jag har installerat connectorn)

Nej, jag tror inte det. Men du kanske har någon skum referens till MySQL Connector/Net i projektet? I en ASP.NET-applikation behövs väl ingen referens alls om jag inte har fel, så länge DLL:en finns i bin-mappen.

(antar att vi pratar om ASP.NET 2?)

Men något proffs på området kanske kan reda ut det här? =P
Lite mer kod och/eller ett mer utförligt felmeddelande skulle kanske inte skada.

Medlem sedan feb. 20079 inlägg
#5

Har laddat upp det felmeddelande jag får.

Ska man kanske lägga till ngt i web.config, som en <add assembly>.

felmeddelande.PNG
Medlem sedan jan. 20013 341 inlägg
#6

Kör du .NET 2.0? I så fall kontrollera om webbhotellet kör .NET 2.0 i Medium Trust, om så är fallet så kolla med webbhotellet om de har en modifierad connector som funkar med .NET 2.0.

/edit, enligt ditt felmeddelande så är inte det orsaken, har du laddat upp connectorn till bin-mappen och angett att connectorn inte ska köras via GAC?

Medlem sedan feb. 20079 inlägg
#7

Jag har inte lagt upp det på ett webhotell ännu ( har inte skaffat en ännu, då jag vill veta om det är något som krävs hos webhotellet).

Jag blev lite fundersam då det inte fungerar hos mig utan att man först installerar Net Connectorn (så fort jag avinstallerar den, så slutar sidan att funka.)

Kör ASP 2.0

Medlem sedan feb. 20079 inlägg
#8

har laddat upp connectorn till bin foldern (MySql.Data.dll).
Hur anger man att connectorn inte ska köras via GAC?

edit: När jag går in på Website -> Start Options så står det att MySql.Data körs från BIN och inte GAC.

edit2: Problemet verkar uppstå när jag har en <asp:SqlDataSource> resp. en <asp:GridView>

Medlem sedan feb. 20079 inlägg
#9

Skapade en helt ny sida nu.
när jag sätter värdet på Label1 så funkar det.
Däremot funkar det inte med GridView1. Antar att det är fel på SqlDataSource1. Har jag angett rätt ProviderName?

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server"/>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" DataSourceID="SqlDataSource1">
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="Database=mindatabas;Data Source=localhost;User Id=;Password="
            SelectCommand="select * from users"
            ProviderName="MySql.Data.MySqlClient"
        > 
        </asp:SqlDataSource>
    </div>
    </form>
</body>
</html>

Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MySql.Data.MySqlClient;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        MySqlConnection con = new MySqlConnection("Database=mindatabas;Data Source=localhost;User Id=;Password=;Allow Zero Datetime=true");
        con.Open();
        MySqlCommand cmd = new MySqlCommand("Select * from roles", con);
        MySqlDataReader dataReader = cmd.ExecuteReader();
        dataReader.Read();
        Label1.Text = dataReader.GetValue(0).ToString();

    }
}

EDIT: Verifierade nu att det inte heller funkar på ett webhotell (fick prova på ett testkonto hos surftown, vilket var schysst). Någon som har en lösning...börjar bli lite desperat nu :p

Medlem sedan mars 20002 836 inlägg
#10

Enligt ditt felmedelande så försöker du använda DbProviderFactory. För att få det att funka så behövs MySql.Data.dll vara laddat i GAC:en ... om inte, så lär det inte fungera, eller, jag har då inte fått igång det UTAN att ha reggat MySql.Data.dll i GAC:en

du säger själv att det funkar NÄR du installerat Net Connectorn. När man installerar Net Connectorn så får man valet om man vill regga i GAC:n. Prova att välja att INTE regga till GAC:n så får du se att det även inte funkar lokalt.

cya,
/PatrikB

Medlem sedan feb. 20079 inlägg
#11

Jag antog en "work-around" genom att använda mig av ODBC drivern för SqlDataSources istället (för "MySQL ODBC 3.51 Driver" är väl tillgänglig på alla webhotell som erbjuder MySQL databaser??).

För att köra vanliga SQL statements i cs koden så funkar det fint att använda sig av MySql Net Connector

Medlem sedan juni 20075 inlägg
#12

PatrikB skrev:

Enligt ditt felmedelande så försöker du använda DbProviderFactory. För att få det att funka så behövs MySql.Data.dll vara laddat i GAC:en ... om inte, så lär det inte fungera, eller, jag har då inte fått igång det UTAN att ha reggat MySql.Data.dll i GAC:en

du säger själv att det funkar NÄR du installerat Net Connectorn. När man installerar Net Connectorn så får man valet om man vill regga i GAC:n. Prova att välja att INTE regga till GAC:n så får du se att det även inte funkar lokalt.

cya,
/PatrikB

Hej,
jag kör VWD och använder DbProviderFactory. Allt funkar perfekt på min dator, men funkar inte med webhotellet och jag får samma felmeddelande som "silversoft" får. MySql.Data.dll som jag fick av webhotellet (modifierad connector for medium trust) ligger i BIN.
Hur kan man fixa det? Om det funkar hos mig antar jag att problemet ligger på webhotellet eller?

Medlem sedan feb. 20079 inlägg
#13

Webhotellet måste ha Net Connectorn installerad då den lägger in ett värde i machine.config filen på deras serverdator.
Vilket webhotell kör du med? Fråga de om de har den installerad, och även vilken version.

Medlem sedan juni 20075 inlägg
#14

Jag kör med Aleborg, vet inte om de har det installerad. Ska fråga. Någon som redan vet? Och isf de inte har det installerad vad skulle jag göra?

Medlem sedan jan. 20013 341 inlägg
#15

Vi har inte MySql.Data.dll installerad i GAC:en utan man måste referera till dll:en som bör vara placerad i bin-katalogen. Vi kör även ASP.NET 2 i medium trust och man bör därför använda sig av den modifierade DLL:en som finns i vår kunskapsdatabas.
Detta fungerar utmärkt, jag har själv använt det utan några som helst problem.

Medlem sedan juni 20075 inlägg
#16

Jag har Aleborgs .dll i bin och som sagt allt funkar bra lokalt. Den är online som jag får felet:
"Unable to find the requested .Net Framework Data Provider. It may not be installed." eftersom jag använder DbProviderFactory factory = DbProviderFactories.GetFactory(dataProviderName);

Någon lösning till det?

Medlem sedan jan. 20013 341 inlägg
#17

Tyvärr inte, på det sättet har jag aldrig använt den.

Medlem sedan dec. 19996 721 inlägg
#18

Hjälp kommer från Sydafrika..

http://nux.co.za/index.php?option=com_content&task=view&id=17&Itemid=2

267 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)