SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Fehler bei kopieren der Dateien ins SharePoint

Unbeantwortet Dieser Beitrag hat 8 Antworten

Ohne Rang
41 Beiträge
Ladislav Stupak erstellt 25 Nov. 2010 15:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sehr geehrte Damen und Herren,

ich bekomme die folgende Fehlermeldung:

System.Net.WebException: The remote server returned an error: (400) Bad Request.

Wenn ich versuche einige Dateien ins SharePoint durch die folgende Methode zu kopieren:

UploadFileToSharePoint(string siteUrl, string libraryName, string sourceFilePath)

{

using (ClientContext clientContext = new ClientContext(siteUrl))

{

 

Web web = clientContext.Web;

 

             FileCreationInformation fileInfo = new FileCreationInformation();

 

             fileInfo.Content = System.IO.File.ReadAllBytes(sourceFilePath);

             fileInfo.Url = System.IO.Path.GetFileName(sourceFilePath);

             fileInfo.Overwrite = true;

 

             List library = web.Lists.GetByTitle(libraryName);

 

             uploadFile = library.RootFolder.Files.Add(fileInfo);

 

 

             clientContext.Load(uploadFile);

             clientContext.ExecuteQuery();

 

 

 

}

}

 

Die meisten Dateien kann ich mit dieser Methode kopieren.

Der Pfad ist auch nicht länger bei den Dateien, die ich nicht kopieren kann.

Manuell kann ich die Dateien in die Bibliothek kopieren.

Ich danke euch für eure Hilfe.

Ladislav Stupak

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Nov. 2010 17:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da es nur bei manchen Dateien nicht funktioniert, wirst Du den Unterschied selbst herausfinden müssen...

Unerlaubte Dateitypen? Datei zu groß?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
41 Beiträge
Ladislav Stupak Als Antwort am 25 Nov. 2010 17:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

danke für deine Antwort.

Es ist die Gröse der Datei, die den Fehler verursacht.

Ich habe folgende Änderungen in der web.config Datei durchgeführt un den Restart in dem IIS Manager durchgeführt.

<system.serviceModel>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
      <bindings>
        <wsHttpBinding>
          <binding name="uploadFilesBinding" maxReceivedMessageSize="30000000" allowCookies="false"></binding>
        </wsHttpBinding>
        <basicHttpBinding>
          <binding name="basicUploadFilesBinding" maxReceivedMessageSize="30000000" allowCookies="false"></binding>
         
        </basicHttpBinding>
        <wsHttpContextBinding>
          <binding name="wsHttpContextUploadFilesBinding" maxReceivedMessageSize="30000000" allowCookies="false"></binding>

        </wsHttpContextBinding>
      
      </bindings>
    </system.serviceModel>

Den Fehler bekomme ich immer noch.

Ist etwas anderes nötig zu machen um die Übertragungskapazität im Client Context zu vergrössern?

Ich danke dir sehr schön für deine Antwort.

Ladislav

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Nov. 2010 08:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wichtig ist noch die maximale Dateigröße, die bei der Webanwendung in der Zentraladministration eingestellt wird. Und der Http-Timeout, der beim Upload über eine langsame Leitung zuschlagen kann (einstellbar über die web.config).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
41 Beiträge
Ladislav Stupak Als Antwort am 26 Nov. 2010 09:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

ich danke dir für deine Antwort.

In der Zentraladministrationsseite habe ich "Maximum upload size" auf 200 MB gestellt.

In der Web.config Datei konnte ich den Begriff "Http-Timeout" nicht finden.

Wo genau ist dieser Begriff in Web.config plaziert und welchen XML Text soll ich da eintragen?

Ich danke dir sehr schön für deine Antwort.

Ladislav

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Nov. 2010 09:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

executionTimeout

http://msdn.microsoft.com/en-us/library/e1f13641(v=VS.90).aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
41 Beiträge
Ladislav Stupak Als Antwort am 26 Nov. 2010 09:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andy,

ich habe in der Web.config Datei

 <httpRuntime
          executionTimeout="1800"
            maxRequestLength="50000000"
        />

eingestellt.

Im IIS Manager habe ich den Restart durchgeführ.

Den Fehler bekomme ich immer noch.

Ich danke dir für deine Hilfe.

Ladislav

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Nov. 2010 10:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dann habe ich jetzt keine Idee mehr, aber schau Dir mal die ersten Ergebnisse davon an. Da könnte was dabei sein:

http://www.google.de/search?q=sharepoint+client+object+model+upload+large+files

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
41 Beiträge
Ladislav Stupak Als Antwort am 26 Nov. 2010 13:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

ich danke dir sehr schön für deine Hilfe.

Ich habe eine andere Methode gefunden, die nicht abbricht bei grösseren Dateien:

public void UploadFile2(string siteUrl, string libraryName, string sourceFilePath, string sourceFileName, string siteRelativeUrl)
        {
            using (ClientContext clientContext = new ClientContext(siteUrl))
            {
                using (FileStream fs = new FileStream(sourceFilePath, FileMode.Open))
                {
                    string destinationUrl = siteRelativeUrl+"/" + libraryName + "/" + sourceFileName;

                    Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext, destinationUrl, fs, true);

                }
            }
        }

 

Danke sehr schön.

Ladislav