2009-06-30 5 views
3

안녕하세요, WSS WebServices를 사용하는이 업로드 방법의 다른 모든 버전과 마찬가지로 멋진 작은 조각이 있습니다. 한 가지 중요한 문제가 있습니다. 한 번 파일을 내 문서 목록에 업로드하고 목록 항목을 업데이트하여 설명/설명을 작성하면 해당 파일이 멈추게됩니다. 이 메서드는 업로드 한 파일을 덮어 쓰지 않습니다. 밖에서 아무도이 이슈를 아직 게시하지 않은 것 같습니다. 그렇다면 누구입니까?WebRequest를 사용하여 SharePoint WSS 3.0에 파일 업로드 PUT

스트림 대신 .. []을 사용하는 다른 버전의 메서드가 있습니다. 같은 문제가 있습니다.

참고 : 라이브러리에 대해 '문서를 편집하기 전에 체크 아웃해야합니다'옵션을 해제했습니다. 문서 라이브러리에는 각 버전마다 주요 버전이 만들어지면서 버전 관리 기능이 켜져 있습니다. 에

private void UploadStream(string fullPath, Stream uploadStream) 
    { 
     WebRequest request = WebRequest.Create(fullPath); 
     request.Credentials = CredentialCache.DefaultCredentials; // User must have 'Contributor' access to the document library 
     request.Method = "PUT"; 
     request.Headers.Add("Overwrite", "t"); 

     byte[] buffer = new byte[4096]; 
     using (Stream stream = request.GetRequestStream()) 
     { 
      for (int i = uploadStream.Read(buffer, 0, buffer.Length); i > 0; i = uploadStream.Read(buffer, 0, buffer.Length)) 
      { 
       stream.Write(buffer, 0, i); 
      } 
     } 
     WebResponse response = request.GetResponse(); // Upload the file 
     response.Close(); 
    } 

원래 크레딧 : http://geek.hubkey.com/2007/10/upload-file-to-sharepoint-document.html

편집 - 주요 발견 .. 내 NUnit과 테스트 프로젝트에서 호출 할 때 잘 작동합니다. 내 WCF 응용 프로그램 (로그온 된 사용자 계정에서 실행중인 nUnit, WCF 응용 프로그램은 동일한 사용자 - 내 계정, SharePoint에서도 유효한 사용 권한을 가지고 실행중인 응용 프로그램 풀에서 실행 됨)에서만 호출하면 실패하는 것 같습니다.

견과류. "어디에서 시작해야할까요?!", 나는 나 자신에게 관심이있다.

답변

2

SOLVED - 파일이 올바른 위치에 생성되었지만 업데이트 경로가 잘못되었습니다. 파일 수가 많은 새 버전이 많이 있습니다. doh!

0

Out-of-the-box SharePoint 웹 서비스 인 Lists.asmx를 사용하지 않는 이유는 무엇입니까? 당신은 편집

http://SITEURL/___vti_bin/Lists.asmx

에서 찾을거야, 내가 링크를 체크 아웃 그것을 당신이 상자 웹 서비스의 아웃 호출하는 것 같다. 이것에 관련된 버전 관리가 있습니다. 특정 파일의 doc lib에있는 다른 버전을 확인할 수 있습니까? 서비스를 통해 부 버전으로 추가 될 가능성이 있는지 확인하십시오.

+0

무엇을 변경해야할지 모르지만 알 수 있습니다. 나는 효과없이이 문서 라이브러리에 대한 버전 관리를 해제하려고 시도했다. 또한 다른 항목 필드를 업데이트하는 두 번째 부분을 해제했습니다. 이제 SharePoint에서는 아무 일도 일어나지 않습니다. 그것은 결코 실행되지 않은 코드와 같습니다. 비록 내 눈으로 보았지만. – misteraidan

0

대문자 T를 사용해 보셨나요? SharePoint의 webdav 헤더 처리가 대소 문자를 구분하지는 않지만 프로토콜 이 대문자 T를 지정합니다. 오, 응답은 무엇입니까? 412 오류 코드 또는 완전히 다른 무엇입니까?

+0

필자는 원래 자본금 T를 가지고 그것을 낮췄다. 여기에 붙여 넣은 코드를 설명하고있다. 오류 코드는 없다. 코드가 완전히 실행되지만 기존 파일은 남아있다. 버전 기록은 변경되지 않습니다. 그것은 아무 일도 없었던 것과 같습니다. – misteraidan

관련 문제