Autor Beitrag
jmarx
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 02.10.08 12:13 
Hallo Liebe Community. =)

Ich habe ein großes Problem, an dem ich seid einigen Tagen verweifel.
Ich möchte eine Web-Anwendung in C# erstellen, die wie folgt aussieht:

Entwurf:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Video: [_________]Durchsuchen (File Upload)     Button: load video

titel: ___
subtitel:___
.
.
.

Button: save as xml


So. Das ganze soll nachher auf einen Server hochgepackt werden. Wenn ich es da als website öffne, soll ich in das Video-durchsuchen feld per load video eine avi-datei aussuchen können [klappt].
Dann zu dem video verschiedene infos in die felder titel, subtitel usw. reinschreiben[klappt].

Jez wirds schwierig: durch das drücken vom Button save as xml soll eine xml datei erzeugt werden mit den ganzen Infos drin.
Diese xml soll dann in genau den Ordner, indem auch die Avi-Datei, die beim FileUpload-Feld ausgewählt wurde, gespeichert werden.
Unter einem etwas abgewandelten Namen, es soll davor noch ein kürzel vor, aber das ist unwichtiger.

Jedenfalls: Wenn ich das in meiner Entwicklungsumgebung teste, funktioniert es. wenn ich es veröffentliche und lokal mit IIS versuche, klappt es nicht.
Wenn ich es auf dn besagten Server packe, klappt es, wenn sich die avi-datei ebenfalls auf dem server befindet. so soll es auch klappen. AABEr es klappt nicht, wenn ich von der servergeladenen seite was lokal, also zB unter C:// machen will. -.-

Ich schreib hie jez nochwas Code zu, aber bitte habt verständniss, das ich nicht alles mitsenden kann. Einmal, weil das zu viel ist. einmal aus datenschutzgründen und drittens hoffe ich auch, den Fehler gut genug lokalisieren zu können sodass ich ncihts unwichtiges weglasse.

Ich hoffe sehr, ihr könnt mir helfen denn ich bin mittlerweile nurnoch auf einer Stelle.

Übrigens: ich bekomme KEINERLEIH FEHLERMELDUNG! Und im Ereignissprotokoll wird auchnichts aufgeführt...
Ein weiteres Problem, das ich jetzt mal dazu erwähne weil es vielleicht im Zusammenhang steht: Wenn ich das Programm öfters ausführe, bekomme ich nach einer Zeit die Fehlermeldung:
Der Zugriff auf tempvideo wurde verweigert, weil ein anderer Prozess drauf zugreift. tempvideo ist eine kopie des videos, das in einem tempordner erstellt wird, vondem einige infos dann herausgezogen werden. Frag mich nicht warum, das projekt habe ich so in die Hände bekommen.

Sorry das ich soviel geschrieben habe, aber es ist wirklich etwas komplex alles.. ich hoffe, ich habe nichts vergessen.

Hier also nun der Code:


ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
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 System.Text.RegularExpressions;
using System.Drawing.Imaging;
using System.IO;
using AviFile;

.
.
.

protected void btnLoadVideo_Click(object sender, EventArgs e)
    {

        char[] endChars = { '.''a''v''i' };       //Endzeichen bestimmen
        char[] startChars = { 'C'':''\\' };         //Anfangszeichen bestimmen

        if (FileUploadVideo.HasFile)                    //Wenn FileUpload gefüllt
        {

            if (FileUploadVideo.PostedFile.ContentType == "video/avi")//Und Datei =.avi
            {

                fehler.Visible = true;                  //Erfolgsmeldung
                fehler.Text = "Loading was successfull!";
                fehler.ForeColor = System.Drawing.Color.Black;

                FileUploadVideo.SaveAs(Server.MapPath("Videos/" + "tempVideo.avi"));
            //Temporär speichern

            //INFO-ANZEIGE
                lblVideoInfo.Text = Convert.ToString(FileUploadVideo.PostedFile.ContentLength);
                lblVideoInfo2.Text = FileUploadVideo.FileName.TrimEnd(endChars).TrimStart(startChars);
                lblVideoInfo3.Text = FileUploadVideo.PostedFile.FileName.TrimEnd(endChars);
            }

            else
            {
                fehler.Text = "Can't upload, this file is not in the .avi-format!";
                fehler.ForeColor = System.Drawing.Color.Red;        //Sonst Fehlermeldung
                fehler.Visible = true;
            }

        }

        else
        {
            fehler.Text = "Can't upload, please check the Filepath!";
            fehler.ForeColor = System.Drawing.Color.Red;            //Sonst Fehlermeldung
            fehler.Visible = true;
        }

    }


    // makes an instance of XMLParser which generates the xml file
    private void generateXml()
    {
        string videoTitle = txtTitle.Text;
        string subtitle = txtSubtitle.Text;
        string streamID = lblVideoInfo2.Text;
        string pathname = lblVideoInfo3.Text;
        string catid = DropDownList1.SelectedItem.Value;
        string actionid = drdlaction.SelectedItem.Value;
        int videoSize = Convert.ToInt32(lblVideoInfo.Text);
        DateTime actualDate = System.DateTime.Now;
        string date = string.Format("{0:u}", actualDate);
        double videoLength;

        
            AVIReader avi = new AVIReader();
            VideoStream tempStream = avi.getStreamInfo(Server.MapPath("Videos/" + "tempVideo.avi"));
try 
  {              //Falls ein Fehler in der folgenden Funktion ausgeworfen wird...
            
    //INFO:
            lblVideoInfo.Text = "" + tempStream.Width + "" + tempStream.Height + tempStream.CountFrames;

            videoLength = (tempStream.CountFrames / (tempStream.FrameRate * 60));


            XmlParser app = new XmlParser();




            double ts = videoLength * 60;               //Videolänge (Frames) in Sekunden      
            int tm = 0;                                 //Minuten
            string tmp;                                 //Textfenster mit Zeit
            while (ts >= 60)                            //Solange Sekunden mehr als 60
            {
                ts = ts - 60;                           //Sekunden minus 60
                tm = tm + 1;                            //Eine Minute mehr
            }

BLA BLA.. HIER HAB ICH WAS HERAUSGESCHNITTEN WEIL DIE ROUTINE SO LANGE IST.
HIER WIRD DIE FRAMEZEIT IN MINUTEN UMGERECHNET.

            }

            int laenge = lblVideoInfo2.Text.Length;
            int pathlaenge = pathname.Length;
            int pathcuttedlaenge = pathlaenge - laenge;
            string pathnamecutted = pathname.Substring(0, pathcuttedlaenge);

            app.makeXml(videoTitle, subtitle, catid, "901_" + streamID, tmp, videoSize, date, actionid, pathnamecutted);
            test.Text = pathnamecutted + "901_" + streamID + ".xml";//Abgeben an app.makeXml

        }
        catch                           //...wird durch das catch trotzdem der Stream geschlossen
        {
            tempStream.Close();           KLAPPT NICHT  HAB ICH GESCHRIEBEN WEIL ICH DACHTE, DER PROZESSVERWEIGERUNGSFEHLER LIEGT DARAN WEIL AVI NET RICHTIG GESCHLOSSEN WIRD        
            fehler.Visible = true;      //Fehlermeldung
            fehler.Text = "Can't Save. There is a Problem with the tempVideo!";
            fehler.ForeColor = System.Drawing.Color.Red;
        }
        
        //tempStream.Close();
        //VERURSACHT AVIFILEOPEN EXCEPTION -2147205009
    }


    protected void btnSaveXml_Click(object sender, EventArgs e)
    {
        if (lblVideoInfo3.Text != "")           //Wenn Info 3 ungleich leer
        {

            if (txtTitle.Text != "")            //Texttitel ungleich leer
            {
                    if (txtSubtitle.Text != ""//Und Subtitel ungleich leer
                    {

                    fehler.Visible = true;      //Erfolgsmeldung
                    fehler.Text = "Saving as XML was successfull!";
                    fehler.ForeColor = System.Drawing.Color.Black;
                    generateXml();              //Abgeben an generateXml (Obrige Funktion)
                    else
                    {
                    fehler...

                    }
            }
            else
            {
                fehler...          //Sonst Fehler in Titel
            }
        }
            else
            {
                fehler...
            }

    }
}


Bitte helft mir.

Mit freundlichen Grüßen,
Jonas Marx
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 02.10.08 12:32 
:welcome:

Denk doch mal drüber nach: Glaubst du wirklich, du könntest bei jedem Besucher deiner Seite auf seiner Festplatte beliebige Dateien speichern? Du kannst die Xml-Datei höchstens zum Download anbieten, auf die HDD der Besuchers hast du verständlicherweise keinen Zugriff.

_________________
>λ=
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 02.10.08 12:39 
Oh Sorry, ich denk da habsch vergessen zu sagen:

Das soll nicht für iwelche User sein ;)

Das soll eig nur für naja.. mich oder wenn überhaupt bestimmte andere personen sein die das benutzen... und ich denke du willst auf Rechte hinaus, die sollten an sich gegeben sein.

Ich habe auchschon Tagelang an web.config und IIS und diversen Ordnern rumexperimentiert und mir so gut wie alle rechte die es gibt geholt xP

Falls du nicht darauf hinauswolltest, dann sollte ich aber viel nachdenken -.-
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 02.10.08 12:42 
und 2tens: die xml soll doch variabel sein.. :( das heißt ich kann sie net zum download anbieten weil sie ja dann statisch wäre nach meinem verständnis.

Der pfad muss noch je nach hochgeladener avi-datei geändert bzw. deklariert werden!!!
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 02.10.08 14:51 
Ob nur für Bekannte oder nicht - ich glaube nicht, dass das funktionieren wird, solange du nicht auf jedem Rechner ein Client-Programm ausführst. Und dann brauchst du wahrscheinlich auch keine Webseite mehr ;) .

_________________
>λ=
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Do 02.10.08 15:02 
user profile iconjmarx hat folgendes geschrieben Zum zitierten Posting springen:
und 2tens: die xml soll doch variabel sein.. :( das heißt ich kann sie net zum download anbieten weil sie ja dann statisch wäre nach meinem verständnis.

Wieso denn? Du erstellst sie dynamisch und stellst sie zum Download bereit. Aber einfach speichern geht nicht (ActiveX und solche Sachen mal außen vor gelassen). Überleg doch nur mal, was passieren würde, wenn das ginge!

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 02.10.08 15:03 
Es muss aber funktionieren -.-

Ich bin Auszubildender Fachinformatiker Anwendungsentwicklung und das Programm ging vorher in anderer Abwandlung auch.

naja.. dennoch danke, ich werde das meinem Ausbilder nochmal unter die Nase binden..

Aber was bitte meinst du mit dem Client-Programm??


grüße, Jonas
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 02.10.08 15:44 
Zitat:

Wieso denn? Du erstellst sie dynamisch und stellst sie zum Download bereit. Aber einfach speichern geht nicht (ActiveX und solche Sachen mal außen vor gelassen). Überleg doch nur mal, was passieren würde, wenn das ginge!


Hm.. aber wenn ich sie zum Download bereitstelle, wäre das erstens mehr Arbeit für den Anwender, weil er dann daernd auf Speichern klicken müsste. Zweitens ist das nicht im Sinne meines Auftrages. (die hässlichkeit mal außen vorgelassen)^^

Desweiteren ist mir schon bewusst, das eine Website nicht einfach das recht haben sollte, alles mögliche auf die Festplatte einfach draufzuhauen, das ist mir schon klar.

Aber wie bereits erwähnt lief eine ähnliche Anwendungs schonmal bei uns. Ich glaube, da war das ganze nur statisch also der Videoherkunftspfad oder sowass.

Außerdem funktioniert das ganze ja schon Stellenweise. So kann man wie gesagt vom Server zu Server ohne Probleme speichern, wenn man alles richtig einstellt. Und das wäre im engeren Sinne auchnicht Sicher.

Als letztes möchte ich noch erwähnen, das ich keinesfalls arbeitsfaul, sondern mittlerweile durch das ständige Suchen nach Fehlern eher abgestumpft bin.

Ich hab den Code so oft durchlesen und ausprobiert..
Es hat einfach nichts gebracht. Dazu muss ich sagen, das ich nochnicht lange in C# unterwegs bin. Ich hab allerdings Erfahrung aus anderen Programmiersprachen bzw. der Struktur.


Grüße, Jonas
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 02.10.08 22:36 
Ich weiß nicht, wie du die Datei speicherst (diese einzige wichtige Zeile hast du leider weggelassen :| ), aber die üblichen Methoden wie XmlDocument.Save können auf jeden Fall nur im Intranet speichern!. Das hast nicht einmal direkt etwas mit Rechten zu tun. Ohne FTP oder Ähnliches (und dazu brauchts eben auch beim Benutzer ein Programm = Client-Programm) kann das nicht funktionieren.

_________________
>λ=
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 06.10.08 09:33 
Hallo Kha.

ja, ich speichere mit:
xmlDoc.Save(applicationPath + streamID + ".xml");

"applicationPath" soll der Ordnerpfad sein also zb "C:/programme/gedöns/"
"streamID" ist der umgewandelte dateiname, zb "123_4478910"
und dann halt ".xml".

Erstmal danke für die Hilfe..

Ich muss dann wohl meinen Ausbilder nochmal fragen, ob er mir helfen kann..

Bis bald, Jonny
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 06.10.08 10:25 
Hallo Jonny,

nach dem ganzen Hin und Her und der jetzigen konkreten Aussage wäre es schön, wenn Du nochmals Dein Problem konkret benennen könntest; dann können vielleicht auch wir helfen.

An Deinen letzten Aussagen fällt mir folgendes auf:
  • streamID ist doch wohl eine Zahl. Wenn Du diese in einem String verknüpfen willst, musst Du streamID.ToString() verwenden.
  • Zum Zusammensetzen eines Dateinamens ist vorzugsweise Path.Combine() zu verwenden. Das steuert Probleme mit dem Backslash automatisch.
  • Im Applikationspfad sollten solche Dateien nicht gespeichert werden. (Unter Vista hat der normale Nutzer auch keine Schreibrechte dafür.) Dafür hat Windows Application.CommonAppDataPath vorgesehen.

Gruß Jürgen
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 06.10.08 14:10 
@JüTho:

Hm.. wie soll ich denn noch konkreter werden?
Also genauer als am anfang kann ich doch nicht werden -.-

Mein Problem ist, das wenn ich auf den Button saveXML drücke, er nicht speichert, solange ich vom Intranet auf einen PC unserer Firma speichern will.
Von Intranet aufs Intranet funktioniert es, von der Visual Studio 2005 entwicklungsumgebung auch.

Wer jez nicht weiß was ich meine.. dann habe ich in meinem ersten Eintrag wohl zu schlecht erklärt, aber es ist auchnicht einfach zu erklären zu meienr Verteidigung^^

streamID müsste zwischendurch zu einem String gemacht worden sein, ich schau gleich nochmal nach. streamID enthält zwar eine Zahl, soll aber, um in den Dateinamen reinimplementiert zu werden, eine stringvariable.

Path.Combine werde ich auchmal ausprobieren.

UND: ich will ja nicht in den Applicationspfad :'(

Drücke ich mich undeutlich aus? Ich will nicht in das verzeichnis, indem die website oder was auch imemr liegt und auchnicht in den projektordner.

Sorry das ich mich etwas aufrege aber iwie wollen mir alle den applikationspfad unterjubeln, und der dürfte nach meinem Verständniss einfach nicht das sein, was ich suche.

Ich will den pfad, der auf das Video zeigt, das der User mittels des FileUpload-feldes ausgewählt hat.

So, der kann also unter:

C:/Programme/MeineTollenVideos/123456.avi
liegen oder
MeinServer/eintollerOrdner/1234/5678/90.avi

liegen.

so, dieser pfad, da wird dann das .avi weggehauen.
also: C:/Programme/MeineTollenVideos/123456

dann wird der dateiname genommen und abgeändert:

123456 --> 901_123456

dann will ich die ganzen Infos, die in den anderen Textfeldern stehen, in eine .xml hauen, die da lautet:

C:/Programme/MeineTollenVideos/901_123456.xml

das wäre mein Plan.

Folgendes passiert:
Wenn ich wie gesagt von server auf festplatte das klatschen will, dann läuft der code flüssig durch. die .xml datei wird aber einfach nicht gespeichert! EDIT: bzw. erstellt. Der Pfad sollte nach meinem verständniss richtig sein... (ich hoffe es, ich versuch gleichnochmal, obs vllt an dem fehlenden combine.Path liegt).

und eine Fehlermeldung kriege ich nirgendswo zu keiner zeit, auchnicht im debugging.

Ein weiterer Bug ist, das mir nach einer Weile beim laden einer avi angezeigt wird, das der prozess nicht auf tempVideo.avi zugreifen kann, weil dieser in Benutzung sei. (tempVideo.avi ist eine avi datei im projekt ordner, unter der die geladenen avis immer abgespeichert werden). Ich vermute, das da irgendein Stream nicht richtig geclosed wird, aber auch da komme ich nicht weiter, da ich wzar ne fehlermeldung bekomme, aber halt nur manchmal. und wenn ich den stream am ende der funktion close, dann kriege ich "Prozess kann nicht in schreibgeschützte dateien schreiben, sodass ich vermute das der stream zu früh geclosed wurde, obwohl die funktion danach zu ende ist -.-

es ist zum verzweifeln.. :(

Ich hoffe, ihr könnt mir helfen,

grüße Jonny
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 06.10.08 14:34 
Tut mir leid, wenn ich Deinen Unmut hervorgerufen habe: Mir war nach Deinem (jetzt vor-) letzten Beitrag nicht mehr klar, inwieweit das Problem mit dem Hinweis auf applicationPath gelöst war und ob Du Dich mit dem Hinweis auf den Ausbilder darüber beklagen wolltest, dass Du von uns keine Hilfe bekommst. Ich wäre mit einem kurzen Hinweis zufrieden gewesen. Jürgen
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 06.10.08 14:38 
Hey, also:
streamID ist ein string
und:
path.Combine versteh ich nicht, bei mir wird dann garnichtsmehr gespeichert..

aber weiß auchnicht, ob ich das so richtig gemacht habe:

ausblenden C#-Quelltext
1:
2:
3:
            String pfadkombiniert2 = System.IO.Path.Combine(applicationPath, streamID);
            String pfadkombiniert = System.IO.Path.Combine(pfadkombiniert2, ".xml");
            xmlDoc.Save(pfadkombiniert);
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 06.10.08 15:32 
So geht Path.Combine:
ausblenden C#-Quelltext
1:
string filename = Path.Combine(applicationPath, streamID + ".xml");					

Zuerst den Pfadnamen (mit oder ohne Backslash - das ist völlig egal), dahinter den kompletten Dateinamen ohne Pfad.

Dein Versuch liefert ein Ergebnis etwa so:
ausblenden Quelltext
1:
"C:\Programme\MyProgram\12345\.xml"					


Gruß Jürgen
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 06.10.08 16:47 
hey JöTho.

ich habe Path.Combine nun eingefügt und es klappt.

Leider hilft mir das bei meinen bisherigen Problemen immernochnicht weiter, d.h. die bestehen weiterhin.



grüße, Jonas
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 08.10.08 09:09 
Ich habe das ganze jetzt nochmal mit meinem Ausbilder besprochen.

Es wäre auch okay, wenn ich statt dem xml.Save einen PopUp Dialog a la "Speichern unter" einsetze. wo man dann praktisch auf speichern klickt, das PopUp öffnet sich und da, wo man dann auswählt, wird das xml abgespeichert. ich soll das irgendwie clientseitig per Response.Redirect lösen, doch ich weiß nicht, wie ich das schreiben soll bzw. wie ich das halt machen soll... Weil die Funktion mit dem Buttonklick "speichern" verweißt dann auf eine ausgelagerte Funktion (ich meine so einen App_Code) so wie ich das verstanden habe, den Xml-parser. Dieser speichert das dann.

ich finde aber keine gute beschreibung für response.redirect..
bzw. da steht, das man dahinter in klammern eine url angeben soll. diese soll aber doch vom benutzer frei ausgewählt werden?? ich denke, das response.redirect löst das PopUp aus???
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 09.10.08 11:12 
Okay Leute, hab es soweit ganz gut hinbekommen...

für die, die ein ähnliches Problem haben:
ich habe die xml per xmlDoc.Save abgespeichert in den Projektordner.
Dann wird ein response.Redirect ausgeführt, das auf diese xml zeigt.

Nur leider öffnet sich dann nicht wie gewollt ein Download-PopUp, sondern die Xml
wird aufgerufen.

Naja, vielleicht (bzw. hoffentlich) bekomme ich das noch in den Griff..


Grüße, Jonas
-Kann geclosed werden-
Xardas008
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win 7 Professional x64, Ubuntu 10.04, Windows Server 2008 R2
C#, Visual Studio 2008 Pro, Visual Studio 2010 Ultimate, Eclipse (Java)
BeitragVerfasst: Di 21.10.08 21:46 
Hallo jmarx,

schön dass du es soweit hinbekommen hast.

Zu deinem Quellcode den du oben gepostet hast.
Du versuchst in dem Catch-Block deinen Stream zu schließen. Ich würde dir empfehlen, dieses im finally zu machen, da dies dann auf jedenfall ausgeführt wird.
Dadurch verhinderst du, dass der Stream unabsichtlich geöffnet bleibt, solltest du die Methode verlassen und nochmals betreten.

Dadurch dürfte meiner Meinung nach dein Problem mit der Fehlermeldung bzgl. der Zugriffsverletzung behoben sein.

Was das Pop-Up betrifft, schau doch mal in die MSDN Hilfe nach download.

Dort wird das so gemacht, dass die einen Hyperlink auf irgendwas setzen. Da du ja festlegen kannst, wo du die XML-Datei auf dem Server temporär ablegen kannst, wäre es somit möglich, den Hyperlink auf eben diese Datei zu setzen. Diesen könntest du zur laufzeit erzeugen, sobald du den speicherort kennst.
Du findest auf jedenfall ein Beispiel dazu in der MSDN-Hilfe.

Hoffe ich konnte dir hier helfen.

Gruß
jmarx Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 14.12.08 11:59 
Vielen Dank auch hier =)

Das mit dem catch-Finally hätte ich gleich drauzf kommen können, vielen Dank, ds ist etwas was mir attsächlich immernoch gfehl hat an der Stelle..

Ja, das mit dem Download habe ich jetzt auch soweit hinbekommen und das programm ist fertig. =)


Vielen Dank auch hier nochmal,


Jonny