【发布时间】:2015-01-30 00:28:08
【问题描述】:
我遇到了以下代码在 Windows 2003 机器上运行的问题,现在我们正在升级到 2008 并且它不再运行。当代码到达 getResponse() 时,它给了我一个 405 错误。
我正在通过 IIS 写入虚拟目录。
我也试过把它变成一个应用程序,它没有任何区别。
我们没有安装/启用 webdav。
我到处搜索,似乎找不到正确的解决方案来允许我编写文件。
我已经包含了用于上传文件的基本代码...
saveLocation.Length = 0;
saveLocation.Append(Path.GetFileName(files[0]));
inStream = File.Open(files[0], FileMode.Open);
HttpWebRequest myWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost/kw/archive/testFile.pdf");
myWebRequest.ContentType = contentType;
myWebRequest.Method = "put";
//myWebRequest.Headers.Add("action", "put");
myWebRequest.Headers.Add("filename", saveLocation.ToString());
myWebRequest.ContentLength = inStream.Length;
dataToRead = (int)inStream.Length;
outStream = myWebRequest.GetRequestStream();
while (dataToRead > 0) {
if (Response.IsClientConnected) {
length = inStream.Read(buffer, 0, 10000);
outStream.Write(buffer, 0, length);
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else {
dataToRead = -1;
}
}
HttpWebResponse myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();
myWebResponse.Close();
inStream.Close();
outStream.Close();
更新:我目前收到 405 错误。
【问题讨论】:
-
你能发布更多的错误细节吗?
-
我收到 405 错误。我已经尝试了所有方法,但无法弄清楚是什么阻止了请求。如果有帮助,则不会安装 WebDav。
-
您是否启用了失败的请求跟踪?如果是这样,您可以从日志中发布事件数据吗?
标签: c# asp.net iis file-upload