Laden...

ASP.NET Word-Dateien werden nicht gefunden

Erstellt von Holgus vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.563 Views
H
Holgus Themenstarter:in
5 Beiträge seit 2012
vor 12 Jahren
ASP.NET Word-Dateien werden nicht gefunden

Hallo erstmal,

Ich habe folgendes Problem:
Eine C# / ASP.NET-Anwendung macht es Anwendern möglich, eine Dokumentenvorlage (dot) auszuwählen. Diese Dokumentenvorlage wird dann aus einem Verzeichnis eines Sharepoint-Servers als Word-Dokument in einem bestimmten anderem Verzeichnis abgelegt. Soweit funktioniert alles problemlos. Jetzt soll aber dieses Word-Dokument zur Bearbeitung geöffnet werden. Zunächst sollen bestimmte Textmarken mit Adress-und Datumsangaben gefüllt werden und danach soll der Anwender seinen Text dazugeben.

Das Problem tritt beim Öffnen der abgelegten Datei auf:

Diese Datei wurde nicht gefunden. (http://.../Brief-MTI (Standard deu) B...)

Beschreibung: > Fehlermeldung:

Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde .

Ausnahmedetails: System.Runtime.InteropServices.COMException: Diese Datei wurde nicht gefunden. (http://.../Brief-MTI (Standard deu) B...)

doc = myWord.Documents.Open(ref str_FullTargetFilePath, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing, ref myMissing);

Auf meinem lokalen Testsystem hat das alles geklappt, doch auf dem Livesystem wird die Datei einfach nicht wiedergefunden, obwohl sie im entsprechenden Verzeichnis abgelegt.

Das Livesystem ist ein Windows Server 2003 Small Business mit entsprechendem Sharepoint und SQL-Datenbank. Ich entwickle mit C# unter Visual Studio 2008.

Ich hoffe, mir kann jemand nützliche Tipps geben 🤔

16.835 Beiträge seit 2008
vor 12 Jahren

Lass Dir mal den Pfad ausgeben, wo die Datei aus Anwendungssicht liegt, und nach welcher Datei du wirklich suchst.
Und zeig mal, wie Du den Pfad zur Datei aus Anwendungssicht erstellst. MapPath?

691 Beiträge seit 2007
vor 12 Jahren

Klingt so, als würde das lokale Testsystem nicht den gleichen Bedingungen wie dem realen System ausgesetzt werden. Ist das "lokale Testsystem" denn auch ein IIS mit gleicher Konfiguration?

Schonmal überprüft, ob auf Windowsebene der Benutzer des ausführenden Application-Pools überhaupt Leserechte auf das Ziel hat?

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

H
Holgus Themenstarter:in
5 Beiträge seit 2012
vor 12 Jahren

Der Pfad unter str_FullTargetFilePath ist der folgende:

"http://mtiserver/VerSoOnline/MTIDocuments/M/MACHWUERTH_TEAM_GmbH_7548/Budde_Holger/Brief-MTI (Standard deu) BUD 2012-2-23 10-0-46.doc"

und wird folgenderweise zusammengesetzt:

     str_TargetFilePath = MTI_WSS.getExistingDestinationPath(connWSS, "", int_TargetPerson, "", 0);

       str_TargetFileName = ((DropDownList)(this.pnl_PersonenFormView.FindControl("FormViewPersonenDetail").FindControl("ddl_Templates"))).SelectedItem.ToString();
       str_TargetFileName += " " + MTI_Verwaltung.GetUser(false) + " " + DateTime.Today.Year + "-" + DateTime.Today.Month + "-" + DateTime.Today.Day + " " + DateTime.Now.Hour + "-" + DateTime.Now.Minute + "-" + DateTime.Now.Second;

       str_TargetFileExtension = "doc";

       str_FullTargetFilePath = str_TargetFilePath;
       if (str_TargetFilePath[str_TargetFilePath.Length - 1] != '/') { str_FullTargetFilePath += "/"; }
       str_FullTargetFilePath += str_TargetFileName + "." + str_TargetFileExtension;
       str_FullTargetFilePath = MTI_Konstanten.get_targetUrl() + str_FullTargetFilePath;

Wie gesagt, das Ablegen des Dokumentes zuvor klappt auch unter diesem Pfad. Wenn ich manuel auf das Verzeichnis gehe, kann ich die Datei auch öffnen.

Bei dem Programm handelt es sich um ein CRM-System, welches auf einem Sharepoint läuft. Dokumente werden zunächst firmenspezifisch danach mitarbeiterspezifisch abgelegt.

Ich habe auch im Ereignisprotokoll des Servers nachgesehen. Der Fehler wird vom richtigen user verursacht, also demjenigen, der auch Zugriffsrechte auf das Verzeichnis hat.

H
Holgus Themenstarter:in
5 Beiträge seit 2012
vor 12 Jahren

So weit ich das beurteilen kann, sind die beiden Systeme gleich konfiguriert. Im Testsystem ist allerdings die Verzeichnisstruktur nicht so aufgebaut wie im Livesystem. Wie gesagt, es handelt sich auch um den richtigen user, der das Problem verursacht; das habe ich im Ereignisprotokoll des Servers nachgelesen.

16.835 Beiträge seit 2008
vor 12 Jahren

Also so wie Du den Pfad hier zusammenbaust könnte das quasi in die Galerie des Code-Horrors.
Schau Dir mal Path.Combine() an.

Ich weiß es jetzt nicht, aber ich glaube nicht, dass sich ein Word Dokument mit einem HTTP-Pfad öffnen lässt? Ist das eine Besondersheit von Sharepoint?
Das könnte lokal funktionieren, weil über localhost der Dateipfad aufgelöst wird. Aber das ist von mir eine reine Vermutung.

H
Holgus Themenstarter:in
5 Beiträge seit 2012
vor 12 Jahren

Der Pfad kann sicherlich besser zusammen gebaut werden, das habe ich von meinem Vorgänger übernommen. Die einzelnen Teile werden allerdings auch noch zum Speichern des Dokumentes benötigt.

Habe eben nochmal überprüft: Der Pfad beim Documents.Open und der Pfad im Sharepoint-Verzeichnis stimmen nicht überein. Ich versuche das zu korrigieren.
Hab das korrigiert, erhalte aber die gleiche Fehlermeldung weiterhin.

Wenn das Öffnen eines Word_Dokumentes nicht über einen HTTP-Pfad möglich ist, was wäre denn da eine Alternative?

16.835 Beiträge seit 2008
vor 12 Jahren

Also ich bin mir da wie gesagt nicht sicher, ob Word so eine Logik hat, dass es von einer URL geöffnet werden kann. Aber lokal speichern und dann öffnen muss gehen; dafür ists ja gemacht.
In der normalen Doku lese ich jedenfalls nichts von einem Öffnen über eine URL. Das würde aber unter [Hinweis] Wie poste ich richtig? Punkt 1 fallen... und das mit den falschen Pfaden kann man mit dem Debugger auch selbst raus finden.

H
Holgus Themenstarter:in
5 Beiträge seit 2012
vor 12 Jahren

Der Pfad war jetzt eben beim ganzen Testen einmal falsch eingetragen, zuvor war das aber schon richtig eingestellt.

Das lokale Speichern der Datei bringt mich auch nicht wirklich weiter, da das fertige Dokument ja auf dem Sharepoint abgelegt werden soll.

Habe jetzt schon Tage mit der Suche nach einer Lösung verbracht. Wirklich weiter gebracht hat mich aber noch nix. X(

Ich versuch mein Glück mal über die SharePoint-Idendity.

Trotzdem erstmal Danke für deine Mühe

3.170 Beiträge seit 2006
vor 12 Jahren

Hallo,

Das lokale Speichern der Datei bringt mich auch nicht wirklich weiter, da das fertige Dokument ja auf dem Sharepoint abgelegt werden soll.

Dann muss der User es eben wieder in den Sharepoint hochladen?
Alternativ bietet Sharepoint ja auch einen Dienst, der es ermöglicht, ein Word-Dokument direkt im Browser zu öffnen. Dann ginge es auch anders. Das funktioniert aber AFAIK wirklich nur, wenn die Sharepoint-Seite mit dem Dokument direkt im Browser geöffnet wird - ganz scher bin ich aber nicht.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca