Hi,
ich bin noch neu in der Programmierung von WebAnwendungen. Daher kann ich mir gut vorstellen etwas fundamentales nicht richtig verstanden zu haben und wäre dankbar für jede Hilfe.
Zu meinem Problem:
Ich erstelle eine recht simple Anwendung mit der der Nutzer den Pfad seiner Datenbank eingeben kann, um Sie zu editieren. Starte ich meine HP via Compiler funktioniert nun alles genau so wie ich das möchte. Ich kann den Pfad eingeben und die Daten bearbeiten und speichern.
Jetzt habe ich das Projekt(net 4.5) via VisualStudio2012 auf DiscountASP.NET Labs - .NET 4.5
veröffentlicht. Es ist jetzt nicht mehr möglich auf die Datenbank zuzugreifen. Er gibt immer den Fehler, dass der Pfad ungültig sei. (C:...).
Des Weiteren funktioniert auch die Benutzererstellung überhaupt nicht. Ich hab einfach die vorinstallierte Standardbenutzerverwaltung erstmal gelassen.
Fehler dabei:
Server Error in '/' Application.
The system cannot find the file specified
[Win32Exception (0x80004005): The system cannot find the file specified]
...
[ProviderIncompatibleException: The provider did not return a ProviderManifestToken string.]
...
Danke für Eure Hilfe
Grüße
Ein Webprojekt läuft auf einem Server, der i.d.R. nicht der selbe Rechner ist wie der Client. Wenn der Server auf seiner C-Platte nach der Datebank sucht die beim Client auf C liegt, kann er die natürlich nicht finden.
Für das Editieren von lokalen Dateien ist ein Webprojekt nicht die beste Wahl.
Danke sehr,
der Tipp hat mir schonmal wirklich sehr geholfen.
Ich hab das jetzt gelöst indem ich die Datenbank zum editieren hochladen lasse und dann die Möglichkeit zum herunterladen der neuen Datenbank gebe.
Leider muss ich das als WebAnwendung realisieren, wurde so beauftragt. 😉
Warum die Benutzererstellung nicht funktioniert, verstehe ich leider immer noch nicht. Der Code sieht eigentlich ganz schlüssig aus:
protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.UserName, createPersistentCookie: false);
string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/";
}
Response.Redirect(continueUrl);
}
Eine DB zu einem Webservice hochladen der sie dann ausliest, die Daten zum Client schickt, die geänderten wieder zum Server und die ganze DB dann wieder zurück?!
Leider muss ich das als WebAnwendung realisieren, wurde so beauftragt. 😉
Ehrliche Worte von mir.
Dann rate ihm zu etwas anderem.
Dein Auftraggeber ist dann evtl. froh dass jemand sich auskennt und ihm keinen Murks macht, oder er ist bald pleite.
Du musst dem Anwender die Möglichkeit geben via Upload die Datenbank hochzuladen. Wie Du bereits merkst funktioniert das per lokalem Pfad natürlich nicht - wie auch.
Das Hochladen von Dateien ist aber ein potenzielles Sicherheitsrisiko, weshalb es hier Beschränkungen gibt.
Diese Beschränkungen gilt nicht nur auf den Dateityp sondern besonders die Größe der zu hochladenden Datei. Denn mit nur wenigen Uploads mit sehr großen Dateien kann man einen Webserver schnell in die Knie zwingen.
Die Standardbeschränkung liegt meines Wissens bei 2 MB. Einzustellen in der web.config oder im IIS Management.
Ich würde aber auch sagen, dass dafür eine Webanwendung nicht unbedingt die geeignete Plattform ist. Es gibt bestimmt bessere Wege, obwohl ich selbst der Meinung bin, dass man mit einer Webanwendung wirklich alles abdecken kann; nur sind andere Wege vielleicht leichter umzusetzen.
Du arbeitest zudem wie ich sehe mit Webforms.
Wenn Du neu in der Webwelt bist, dann musst Du Dir über eines im Klaren sein: man muss anders denken als ein Desktop-Entwickler - völlig anders.
Webforms wurde erfunden, um den Einstieg zu erleichtern - vieles ist in WebForms aber nicht so einfach realisierbar, da es viele Standardfälle sehr verkompliziert.
Wenn Du neu bist, wirst Du Dich mit ASP.NET MVC deutlich leichter tun; auch wenn Du am Anfang merken wirst, dass Du Dein Denken deutlich umstellen werden musst.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Eine DB zu einem Webservice hochladen der sie dann ausliest, die Daten zum Client schickt, die geänderten wieder zum Server und die ganze DB dann wieder zurück?!
Leider muss ich das als WebAnwendung realisieren, wurde so beauftragt. 😉
Ehrliche Worte von mir.
Dann rate ihm zu etwas anderem.
Dein Auftraggeber ist dann evtl. froh dass jemand sich auskennt und ihm keinen Murks macht, oder er ist bald pleite.
Naja, ich bin hier nur Werkstudent und pleite gehen die wohl so schnell nicht wegen so einem kleinem Gimmick. Ich bin nur leider zur falschen Zeit am falschen Ort gewesen und hab auch noch gesagt, dass ich C# kann und mich mit VS etwas auskenne 😄
Der Auftrag war halt so:
-Kunden sollen von überall her ihre Datenbanken editieren können(daher Web)
-Viele Werte dürfen aber nicht verändert werden können oder nur in einem ganz bestimmten Wertebreich (geht schnell etwas teures kaputt). Daher haben Sie auch keinen direkten Zugriff auf die Datenbanken. Das soll nur über diese Anwendung oder unsere Mitarbeiter im Notfall vor Ort möglich sein
Daher scheint mir das Upload/Download Prinzip eigentlich ganz geeignet zu sein. Wenn das keine Webanwendung ist, müssten die Kunden immer noch das Programm installieren und blablup. Da geht halt immer was schief 😄 Oder seht ihr das ganz anders?
Wie groß wird die DB?
Da geht halt immer was schief
Wenn mans gescheit macht nicht 😉
Will der Kunde wirklich seine Daten durchs Netz schicken? Ich würd mir das schon überlegen.
Und warum machst du nicht einfach eine Datenbank die diese Infos für alle Kunden speichert? Der Kunde bearbeitet diese Informationen (natürlich nur die, die er darf).
hab auch noch gesagt, dass ich C# kann und mich mit VS etwas auskenne 😄 Na die Suppe darfst du dir selber auslöffeln 😃
Aber ich glaube dein Auftraggeber stellt sich nicht vor, jeden Kunden eine Datenbank zu geben diese dann transferiert wird? Was machst du wenn der Kunde Experte ist und die Datenbank direkt, ohne dein Webtool bearbeitet und anschließend hochlädt? Hast du irgendeine Kontrolle ob auch in diesem Fall das richtige drin steht?
lg Lion