제목은 다음과 같이 다시 작성됩니다. 127.0.0.1:3446에 대한 연결이 대상 시스템에서 적극적으로 거부되었습니다.
<p>WCF4.0 템플릿 -REST를 사용하고 있습니다. 스트림을 사용하여 파일을 업로드하는 방법을 만들려고 합니다.</p>
<p>问题总是发生生</p>
<pre class="brush:php;toolbar:false;">Stream serverStream = request.GetRequestStream();</pre>
<p>유류式传输类:</p>
<pre class="brush:php;toolbar:false;">네임스페이스 LogicClass
{
공개 클래스 StreamClass : IStreamClass
{
public bool UploadFile(문자열 파일 이름, 스트림 파일 스트림)
{
노력하다
{
FileStream fileToupload = new FileStream(파일 이름, FileMode.Create);
바이트[] bytearray = 새 바이트[10000];
int bytesRead, totalBytesRead = 0;
하다
{
bytesRead = fileStream.Read(bytearray, 0, bytearray.Length);
totalBytesRead += bytesRead;
} while (bytesRead > 0);
fileToupload.Write(bytearray, 0, bytearray.Length);
fileToupload.Close();
fileToupload.Dispose();
}
catch (Exception ex) { throw new Exception(ex.Message); }
사실을 반환;
}
}
}</pre>
<p>REST 项目:</p>
<pre class="brush:php;toolbar:false;">[WebInvoke(UriTemplate = "AddStream/{filename}", 메서드 = "POST", BodyStyle = WebMessageBodyStyle.Bare)]
public bool AddStream(문자열 파일 이름, System.IO.Stream 파일 스트림)
{
LogicClass.FileComponent 나머지 = new LogicClass.FileComponent();
return Rest.AddStream(파일 이름, fileStream);
}</pre>
<p>Windows 窗体项目:用于测试</p>
<pre class="brush:php;toolbar:false;">private void 버튼24_Click(객체 전송자, EventArgs e)
{
바이트[] 파일스트림;
(FileStream fs = new FileStream("E:stream.txt", FileMode.Open, FileAccess.Read, FileShare.Read)) 사용
{
fileStream = 새 바이트[fs.Length];
fs.Read(fileStream, 0, (int)fs.Length);
fs.닫기();
fs.Dispose();
}
string baseAddress = "http://localhost:3446/File/AddStream/stream.txt";
HttpWebRequest 요청 = (HttpWebRequest)HttpWebRequest.Create(baseAddress);
request.Method = "POST";
request.ContentType = "텍스트/일반";
스트림 serverStream = request.GetRequestStream();
serverStream.Write(fileStream, 0, fileStream.Length);
serverStream.Close();
(HttpWebResponse 응답 = request.GetResponse()를 HttpWebResponse로 사용)
{
int statusCode = (int)response.StatusCode;
StreamReader 리더 = new StreamReader(response.GetResponseStream());
}
}</pre>
<p>저는 인터넷을 통해 인터넷을 이용하고 있습니다.업로드 방법을 테스트하는 더 좋은 방법이 있습니까? </p>
<p>스택 추적: </p>
<인용문>
<p>System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress 소켓 주소)
System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, 소켓 s4, 소켓 s6, 소켓& 소켓, IPAddress& 주소, ConnectSocketState 상태, IAsyncResult asyncResult, Int32 시간 제한, 예외& 예외)</p>
</blockquote><p><br /></p>