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")
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.
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.
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?
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.)
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?
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
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.
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
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?
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.
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.
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);