0

(401) Unauthorized エラーに関する多くの質問を見つけましたが、問題を診断する方法を説明したものはありませんでした。

SharePoint フォルダーにファイルをアップロードする方法を学ぶために、新しい MVC ASP.net アプリを作成しました。現在のところ、ファイルを C:\testfolder\file.txt から C:\testfolder\UploadedFiles にコピーできないようです

ソースファイルパスとターゲットフォルダーを送信する場所で作成した方法は次のとおりです。

 //Flag to indicate whether file was uploaded successfuly or not
        bool isUploaded = true;
        try
        {
            // Create a PUT Web request to upload the file.
            WebRequest request = WebRequest.Create(targetDocumentLibraryPath);

            //Set credentials of the current security context
            request.PreAuthenticate = true;
            request.UseDefaultCredentials = true;
            ICredentials credentials = new NetworkCredential( "Username", "password", "Domain"); //I used my username and password here
            request.Credentials = credentials;
            //request.Credentials = CredentialCache.DefaultCredentials;
            request.Method = "PUT";

            // Create buffer to transfer file
            byte[] fileBuffer = new byte[1024];

            // Write the contents of the local file to the request stream.
            using (Stream stream = request.GetRequestStream())
            {
                //Load the content from local file to stream
                using (FileStream fsWorkbook = File.Open(sourceFilePath, FileMode.Open, FileAccess.Read))
                {
                    //Get the start point
                    int startBuffer = fsWorkbook.Read(fileBuffer, 0, fileBuffer.Length);
                    for (int i = startBuffer; i > 0; i = fsWorkbook.Read(fileBuffer, 0, fileBuffer.Length))
                    {
                        stream.Write(fileBuffer, 0, i);
                    }

                }
            }

            // Perform the PUT request
            WebResponse response = request.GetResponse();

            //Close response
            response.Close();
        }
        catch (Exception ex)
        {
            //Set the flag to indiacte failure in uploading
            isUploaded = false; //The remote server returned an error: (401) Unauthorized.
        }

        //Return the final upload status
        return isUploaded; 
    }

私は次のことを試しました:

  • フォルダーのアクセス許可を変更して、すべてのユーザーが書き込み/読み取りできるようにします。
  • 他のフォルダーの場所 (SharePoint、ローカル ドライブ、ネットワーク ドライブ) を使用してファイルをアップロードします。

この問題を機能させる方法について何か考えはありますか? 問題をデバッグする方法についての見通しも高く評価されます。

更新: 私のアカウントが IIS のアプリ プール アカウントとして設定されている可能性があります。問題が何であるかはまだわかりません。

4

2 に答える 2

1

これは、プロキシ設定のようなものではないでしょうか?

デフォルトのプロキシ設定を

WebRequest 

また、追加する必要がありますか

<system.net> 
  <defaultProxy useDefaultCredentials="true" /> 
</system.net> 

あなたのウェブ設定に?

これが役立つ場合があります。

デフォルトの資格情報を使用するようにデフォルトのプロキシを設定するにはどうすればよいですか?

于 2012-08-31T07:27:29.460 に答える
-3

私は別のアプローチを試して、ここで説明されている httpposted ファイルと .saveAs() を使用することにしました

于 2012-09-10T17:33:14.453 に答える