PDA

Bekijk Volledige Versie : website verhuizen



scooke
15/07/09, 00:56
Hoi,

Ik ben geen programmeur en moet het volgende doen:
op een oude server draait windows 2000 met ASP en mysql.
Nu dien ik de website te verhuizen, maar de database moet naar een centrale mysql database verhuizen waar de andere intranetapplicaties op draaien . De website's zijn enkel op het intranet te gebruiken.
Ik heb alles geinstalleerd op een windows 2003 server zoals asp, de odbc koppeling gelegd. Er is een ODBC koppeling gelegd naar de remote server, en de koppeling is getest, dus deze toegang is ook ok.
Onder de map waar de website staat, staan de volgende bestanden nl:
web.config, default.aspx, Precompiled.config en een map bin.

Ik ben al een hele tijd aan het zoeken geweest, en ben tot de conclusie gekomen dat de aanpassing waarschijnlijk hier moet gebeuren in de default.aspx file: (zover ik natuurlijk juist ben...)

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT id, name, destination, reason, tel, time_leave, time_back, signature FROM buitendienst WHERE datum='&quot; &amp; strDatum &amp; &quot;' ORDER BY id">
</asp:SqlDataSource>

Mijn vraag is, naar waar verwijst SqlDataSource1, als ik deze aanpassing werkt de volledige website niet meer.
Wie kan me helpen, de programeur die deze applicatie ontwikkeld had, is reeds enkele jaren weg uit ons bedrijf, maar de applicatie werkt uitstekend.
Enkel zou deze verhuist moeten worden, en de database dus op een andere server. Wie kan me helpen?

Tnx

gjtje
15/07/09, 01:48
Wat wil je aanpassen? Een eventuele connectie string staat in web.config.

scooke
15/07/09, 09:52
Hoi,

Dat is nou het probleem, ik weet eigenlijk niet goed wat juist aan te passen.
Omdat ik dus geen programmeur ben heb ik het volgende eens getest, om uit te zoeken in welk bestand de configuratie staat, ben ik beginnen met de files te hernoemen.
Dus onder de directory waar de website staat heb ik de bestanden hernoemd naar web.config_old en PrecompiledApp.config_old. De website blijft gewoon werken, maar als ik default.aspx verander, dan komt er de melding in de webpagina: de resource cannot be found.
In bijlage de code van de pagina default.apsx, (is hernoemd naar extensie .txt! voor het uploaden) nu zou ik de code willen wijzigen dat de website de database op een andere server gaat uitlezen dan momenteel op localhost.

Tnx!!

bramveen
15/07/09, 10:48
Het antwoord is al gegeven kijk in de file web.config. Wellicht is het handig de aanpassing door de programmeur te laten doen.

Groet

Bram

gjtje
15/07/09, 10:51
In de web.config staat een stukje <connectionStrings>...</connectionStrings> daar staat de connectie string die gebruikt wordt voor je database, met de naam ConnectionString.

scooke
15/07/09, 10:57
in bijlage de web.config. Het zou idd best door een programmeur aangepast worden, maar voor een paar regeltjes code had ik gedacht dat ik hier mss de oplossing zou vinden :)

Als ik idd de connectiestring bekijk, verwijst die naar Dsn=MySQLbuitendienst, die is aangemaakt op de nieuwe server en de ODBC heeft de identieke naam..
Wordt de web.config file dan niet telkens opnieuw uitgelezen? Vermits ik die van naam gewijzigd had en de toepassing bleef werken.

Tnx

gjtje
15/07/09, 11:39
Ok, dan zit het dus niet in de config. In het controlpanel heb je de odbc koppeling opnieuw aangemaakt, daar geef je ook de host in op.

scooke
15/07/09, 11:55
idd, dit is gedaan. Ik heb op de nieuwe server onder de ODBC Data source administrator een nieuwe system DSN aangemaakt nl. MySQLbuitendienst en de driver is MySQL ODBS 3.51 driver.
Via configure heb ik naast Data Source Name MySQLbuitendienst ingevuld, naast Server het ip-adres van de databaseserver, en de login.
Naast Database kan ik dan de database selecteren die ik via phpmyadmin geimporteerd heb op de database server en test geeft Succes aan.
Dus deze stap lijkt me in orde.
Wat is het volgende om te checken?

gjtje
15/07/09, 13:54
Mailscripts of andere scripts die afhankelijk zijn van 't systeem zoals componenten voor grafieken.

scooke
15/07/09, 14:02
dat draait er niet op, de server is juist vanaf scratch geinstalleerd, zonder scripts, mailserver.. enkel asp geactiveerd.
Volgens mij moet er in dit script naar de juiste server worden verwezen. Kan je me hier mee helpen?
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT id, name, destination, reason, tel, time_leave, time_back, signature FROM buitendienst WHERE datum='&quot; &amp; strDatum &amp; &quot;' ORDER BY id">
</asp:SqlDataSource>

HVPS Hosting
20/07/09, 17:49
Hoi,

Ik denk dat er no way is dat je dat zeker kan weten. Normaal gesproken sla je de connection string in de web.config op, en verwijs je daarnaar. Helaas kan de ontwikkelaar ook in de codebehind direct de connectionstring, database naam, tabelstructuur etc hebben gebruikt. In dat geval moet de ontwikkelaar een nieuwe versie compileren.

DotNetFreak
20/07/09, 18:57
Je hebt dus in je default.aspx een sqldatasource, die verwijst naar de connectionstring in je web.config. Die verwijst op zijn beurt naar de DSN. En die heb je aangemaakt, dus als het goed is, moet het werken.

Als het niet goed is, krijg je een foutmelding als je default.aspx opvraagt. Welke melding krijg je? Als je niet lokaal werkt, moet je customErrors mode="RemoteOnly" vervangen door customErrors mode="Off" zodat je gedetailleerde meldingen krijgt.

scooke
23/07/09, 10:31
Als ik de custumErrors mode op 'Off' zet, krijg ik volgende melding in de browser:
Wat vertelt deze foutmelding?

Server Error in '/buitendienst' Application.
--------------------------------------------------------------------------------

Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load type '_Default'.

Source Error:


Line 1: <%@ page language="VB" autoeventwireup="false" inherits="_Default" %>
Line 2:
Line 3: <%@ Import Namespace="System.Data" %>


Source File: /buitendienst/Default.aspx Line: 1


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433

DotNetFreak
23/07/09, 11:42
Het gaat mis van in het begin, ASP.NET probeert de bijbehorende codebehind te laden maar dat lukt niet.

De codebehind is het bestand met de programmeercode dat bij de Default.aspx hoort. Aangezien "page language=VB", zal dat bestand Default.aspx.vb heten.

Nu zijn er 2 mogelijkheden. Je applicatie is niet gecompileerd en dan moet dat bestand er daadwerkelijk zijn. Of ze is wel gecompileerd en dan heb je een map "bin" waarin per .aspx één .dll staat (of één grote dll met de naam van de applicatie kan ook).

Let er dus op dat je alle bestanden mee overgezet hebt.

scooke
23/07/09, 12:06
Ik heb gekeken en er staat idd een map bin die ik reeds mee overgenomen had, in deze bin map staan de bestanden App_Web_default.aspx.cdcab7d2.dll en
App_Web_info.aspx.cdcab7d2.dll.
Ook heb ik het bestand Default.aspx.vb gekopieerd, en geplaatst in de webdirectory waar default.aspx staat, maar foutmelding blijft.
Er staat ook nog een bestand in de webdirectory PrecompiledApp.config,
hier staat enkel dit in: <precompiledApp version="2" updatable="true"/>

gjtje
24/07/09, 11:51
Eventlog verteld mogelijk nog iets meer over de reden waarom het bestand niet bestaat.

DotNetFreak
24/07/09, 13:33
Je hebt zowel de broncode én de gecompileerde versie? Bij de gecompileerde applicatie heb je dus in de map BIN voor elke ASPX een DLL. Maar dan heb je dus geen VB bestand meer, want dat is gecompileerd in die DLL.

Je schrijft echter dat je default.aspx.vb gekopieerd hebt, dus dan moet je ook de bronbestanden hebben. Deze twee mixen heeft geen zin. Maar als je de gecompileerde versie niet aan de praat krijgt, kan je deze eens verwijderen en kijken of het met de niet-gecompileerde versie wel gaat.

Foutmelding komt ook voor als de ASP.NET versie niet goed is, lijkt me echter niet het geval. Web.config ziet eruit als 2.0 en ook in je foutmelding staat 2.0, dus dat schijnt snor te zitten.

scooke
25/07/09, 12:48
ok, ik heb nu CodeFile="Default.aspx.vb" aan de regel <%@ page language="VB" autoeventwireup="false" inherits="_Default" %> toegevoegd.
Als ik dan de applicatie wil oproepen verschijnt volgende melding.
Wat moet er precies in web.config aangepast worden?

Tnx!


Server Error in '/buitendienst' Application.
--------------------------------------------------------------------------------

Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: The entry 'ConnectionString' has already been added.

Source Error:


Line 11: <appSettings/>
Line 12: <connectionStrings>
Line 13: <add name="ConnectionString" connectionString="Dsn=MySQLbuitendienst"
Line 14: providerName="System.Data.Odbc" />
Line 15: </connectionStrings>


Source File: C:\Inetpub\wwwroot\buitendienst\web.config Line: 13

DotNetFreak
27/07/09, 11:24
Het is niet meer als wat er staat; zo'n foutmelding krijg je als je twee keer de connectionstring opneemt in je web.config. Dus eentje verwijderen en het is gefikst.

Al weten we niet wat je inmiddels nog uitgespookt hebt. Ben je nu in de broncode of de gecompileerde versie bezig? Als je de twee aan het mixen bent, wordt het lotto natuurlijk.

scooke
27/07/09, 21:26
ja idd, ik ben dus met het web.config bestand aan de slag.
Ik heb dit verwijdert uit het web.config bestand:
<connectionStrings>
<add name="ConnectionString" connectionString="Dsn=MySQLbuitendienst"
providerName="System.Data.Odbc" />
</connectionStrings>


Als ik dat doe, dan krijg ik nieuwe foutmelding:

Server Error in '/buitendienst' Application.
Keyword not supported: 'dsn'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Keyword not supported: 'dsn'.

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:

[ArgumentException: Keyword not supported: 'dsn'.]
System.Data.Common.DbConnectionOptions.ParseIntern al(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) +1481474
System.Data.Common.DbConnectionOptions..ctor(Strin g connectionString, Hashtable synonyms, Boolean useOdbcRules) +102
System.Data.SqlClient.SqlConnectionString..ctor(St ring connectionString) +52
System.Data.SqlClient.SqlConnectionFactory.CreateC onnectionOptions(String connectionString, DbConnectionOptions previous) +24
System.Data.ProviderBase.DbConnectionFactory.GetCo nnectionPoolGroup(String connectionString, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) +125
System.Data.SqlClient.SqlConnection.ConnectionStri ng_Set(String value) +56
System.Data.SqlClient.SqlConnection.set_Connection String(String value) +4
System.Web.UI.WebControls.SqlDataSourceView.Execut eSelect(DataSourceSelectArguments arguments) +138
System.Web.UI.DataSourceView.Select(DataSourceSele ctArguments arguments, DataSourceViewSelectCallback callback) +17
System.Web.UI.WebControls.DataBoundControl.Perform Select() +149
System.Web.UI.WebControls.BaseDataBoundControl.Dat aBind() +70
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.Ens ureDataBound() +82
System.Web.UI.WebControls.CompositeDataBoundContro l.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +50
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2041


Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433


Kan je anders het web.config bestand eens bekijken hoe het dan juist moet zijn? In een hoger topic vind je het bestand web.config.txt
Bedankt!

DotNetFreak
28/07/09, 15:13
In de web.config hierboven staat de connectionstring precies 1 keer, dus dat is in principe goed.

Maar ik denk dat handigste is om het een programmeur te laten uitvlooien. Met try & error verlies je uiteindelijk meer tijd en dat is wellicht duurder dan iemand inhuren.

scooke
29/07/09, 09:30
Ik probeer dit s'avonds na de werkuren op te lossen, om zelf uit te zoeken hoe dit in mekaar zit en om zelf wat bij te leren. Ik zal ondertussen nog wat googelen om te kijken als ik ergens nog wat extra info kan terugvinden. Je mag me nog altijd blijven ondersteunen ;-)
Alvast bedankt voor de moeite!