首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebClient将文件上载到web

WebClient将文件上载到web
EN

Stack Overflow用户
提问于 2010-01-19 11:40:50
回答 2查看 15.3K关注 0票数 0

我想知道我的编码是否正确。要手动将文件上载到我的工作场所服务器,我必须使用登录ID和密码。使用下面的clode,我是否应该包括我的loginID和密码?

代码语言:javascript
复制
    public void SaveLogsToWeb(string logFileName)
    {
        WebClient webClient = new WebClient();
        string webAddress = null;
        try
        {
            webAddress = @"http://myCompany/ShareDoc/";

            webClient.Credentials = CredentialCache.DefaultCredentials;

            WebRequest serverRequest = WebRequest.Create(webAddress);
            WebResponse serverResponse;
            serverResponse = serverRequest.GetResponse();
            serverResponse.Close();

            webClient.UploadFile(webAddress + logFileName, "PUT", logFileName);
            webClient.Dispose();
            webClient = null;
        }
        catch (Exception error)
        {
            MessageBox.Show(error.Message);
        }
    }

当我运行它时,异常抛出"(401)未授权“

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2010-01-19 11:45:09

切勿在代码文件中包含用户/密码信息。抛出401的原因是因为internet用户和它正在运行的应用程序池对您试图写入的目录没有写入权限。

右键单击该目录,并将/ASPNET和/Network服务添加为具有写入权限的用户。这应该会解决这个问题。确保隔离目录。

这里有一篇关于它的很好的msdn文章:http://support.microsoft.com/kb/815153

票数 1
EN

Stack Overflow用户

发布于 2012-10-31 23:13:01

也许很晚了,但你可以在webClient.Upload..之前添加以下两行来修复它:

代码语言:javascript
复制
webClient.Headers["Accept"] = "/";
webClient.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2090907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档