System.Net.WebClient
클래스로 작업하고 있는데 UploadFileAsync 메서드를 사용하여 파일을 업로드하려고합니다. Visual Studio 2010을 사용하고 있으며 모든 프로젝트가 클라이언트 라이브러리가 아닌 .NET 4.0 표준 런타임을 사용하도록 설정되어 있습니다.System.Net.WebClient.UploadFileAsync를 호출 할 때 .NET 오류가 발생합니다.
아래는 내가 사용하고있는 코드의 일부입니다. 약 90 %의 시간에 다음 오류가 발생합니다.
'System.ComponentModel.AsyncOperation'유형의 개체를 'UploadBitsState'유형으로 캐스팅 할 수 없습니다.
Stack Trace:
at System.Net.WebClient.UploadFileAsyncWriteCallback(Byte[] returnBytes, Exception exception, Object state)
at System.Net.WebClient.UploadFileAsync(Uri address, String method, String fileName, Object userToken)
at FileUpload._StartUpload()
내 조직 내부에 업로드하려고 오전 FTP 서버, 그러나 사람은 IPSwitches WS-FTP를 실행하고 다른 하나는 IIS 6.0 FTP 사이트를 실행하고, 나도 같은 문제에 경험이 두 서버.
나는 유사한 문제가없는 다른 사람들을 위해 높거나 낮은 것을 검색했습니다.
예외가 발생하는 실제 행은 _Client.UploadFileAsync
메서드 호출입니다.
private void _StartUpload()
{
try
{
_Client = new WebClient
{
Credentials = _Credentials
};
_Client.UploadProgressChanged += ProgressChanged;
_Client.UploadFileCompleted += UploadCompleted;
_Client.UploadFileAsync(FileBeingUploaded, "STOR", _LocalFile, null);
}
catch (Exception exception)
{
// Methods calls removed for brevity
}
}
private void UploadCompleted(Object sender, UploadFileCompletedEventArgs e)
{
// Methods calls removed for brevity
}
private void ProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
// Methods calls removed for brevity
}
동 기적으로 실행하면 작동합니까? 'tcpdump' 나'WireShark'와 같은 패킷 스니퍼로 트래픽을 보려고 했습니까? –
동기 호출을 시도하지 않았습니다. 스니퍼에 관해서는 이러한 특정 오류를 보려고하지는 않았지만 예외가 .Net 프레임 워크 내에 있고 캐스팅 문제이므로 TCP 트래픽 분석에서 어떤 결과가 나타날지 잘 모르겠습니다. –
'_LocalFile' 파일을 정적 파일로 업로드하고 있습니까? 즉, ** 업로드되는 동안 수정되거나 업데이트되는 파일 내용의 ** ** 가능성이 있습니까? 나는 그 특정한 시나리오에서 당신의 오류를 복제 할 수 있기 때문에 물어 본다. –