mit Process.Start() Dokumente eines Servers öffnen



  • Hallo

    ich habe folgendes Problem: Ich habe eine Webseite programmiert und darauf auf Dokumente verlinkt, die ich mit Process.Start() beim anklicken des Links öffnen möchte mit dem passenden Programm (also z.B. Adobe Acrobat oder Office oder sonstiges). Auf meinem Rechner lokal funktioniert das. Wenn ich das ganze aber über einen Server versuche (also Webseite veröffentliche, die Dokumente ebenfalls auf den Server packe und den Link anpasse), dann wird beim anklicken des Links zwar irgendwas gemacht (also es gibt es PostBack), aber das Programm zum anzeigen startet nicht. Mein Dokument wird nicht geöffnet. Was mache ich hier falsch oder gibt es da irgendwelche Probleme mit Rechten oder sowas? Bin leider kein Netzwerkprofi.

    Danke!



  • Gib mal ein Beispiel



  • Also, ich habe auf einem Server in einem lokalen Netzwerk meine Webseite und einen Ordner, in dem Dokumente gespeichert sind:
    Servername: PCSERVER
    Speicherort für Dateien: [url]PCSERVER\MeineWebpage\Dokumente[/url]

    Die Webseite rufe ich so auf in meinen Browser:
    [url]http:\\PCSERVER\MeineWebpage\default.aspx[/url]

    Auf dieser Webseite gibt es einen Link, den ich aus einer Datenbank hole und in eine ListBox fülle:

    protected void FillPermanentLinks(ListBox box)
            {
                ClearLinkListBox(box);
                PermanentLinksTableAdapter adapter = new PermanentLinksTableAdapter();
                DataSet.PermanentLinksDataTable table = new DataSet.PermanentLinksDataTable();
                table = adapter.GetDataPermanentLinks();
                if (table.Rows.Count > 0)
                {
                    box.Items.Add(table.Columns["Document"].ToString());                
    
                }
            }
    

    Beim anklicken des DocumentLinks wird folgender Code ausgeführt

    ...
    if (LinkListBox.SelectedIndex > -1)
                    {
                        //Get selected item of ListBox (= column name)
                        string szSelectedLink = LinkListBox.SelectedValue.ToString();
                        //If there are any values in the column, they can be found in row[0] with column name selected above. 
                        string szDocumentName = table.Rows[0][szSelectedLink].ToString();
                        if (szStringPath != "")
                        {
                            szDocumentName = szStringPath + szDocumentName;
                            //Load link and show document in external programm (word,pdf,...)
                            try
                            {
                                Process.Start(szDocumentName);
                            }
                            catch (Exception ex)
                            {
                                //show error
                                lbErrorView.Text = ex.Message;
                            }
                        }
                    }
    

    Der komplette Link zum Dokument ist dann folgender:
    [url]\\PCSERVER\MeineWebpage\Dokumente\MeinDokument.pdf

    Auf meinem lokalen Rechner funktioniert das (z.B. mit dem Pfad C:\MeineDokumente\Dokument.pdf), wenn ich das Dokument aber über den Server aufrufen möchte, wird das Programm (Word, Acrobat) nicht ausgeführt



  • Gibts keine Security Exception?
    Könnte was mit CAS zu tun haben.

    Simon



  • Nein, ich bekomme keine Fehlermeldung, das Dokument wird einfach nicht geöffnet. Ich gehe aber davon aus dass es etwas mit Security zu tun hat, da ich ja ein Dokument auf dem Server öffne mit Process.Start(). Gibt es eine Möglichkeit zu sagen, dass das Dokument auf dem Client und nicht auf dem Server geöffnet wird? Das wäre natürlich der bessere Weg.



  • Na wenn das möglich wäre dann hätten wir noch mehr Trojaner, Viren, etc.
    Sowas kannst Du nur mit ActiveX machen.
    Der Code wird auf dem Server ausgeführt und nicht auf dem Client.
    Du kannst aber eine Link machen und bei draufklick öffnet sich der Download. Danach kann der User öffnen.
    ActiveX wird auf dem Client ausgeführt und ist eigentlich ein Programm.

    Hier gehts weiter:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-243636-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-.html


Anmelden zum Antworten