我使用 twitterizer 进行推文和关注,但在文件 TwitterCommand.cs 中,在线
responseData = ConversionUtility.ReadStream(exceptionResponse.GetResponseStream());
我得到一个例外:底层连接已关闭:服务器关闭了预期保持活动状态的连接。
exceptionResponse 为 null,所以上面的代码看起来像抛出异常:
// The exception response should always be an HttpWebResponse, but we check for good measure.
HttpWebResponse exceptionResponse = wex.Response as HttpWebResponse;
if (exceptionResponse == null)
{
throw;
}
不明白为什么会这样=\
Uri,在代码中:http://api.twitter.com/1/statuses/update.json,所以在更新状态(推文)时会出现异常。
为了更新我使用这个代码:
TwitterStatusAsync.Update(token, tweet, null, TimeSpan.FromSeconds(0), (resp) =>
{
TwitterAsyncResponse<TwitterStatus> response = resp;
if (response.Result != RequestResult.Success)
{
this._twtLogger.addLine(String.Format("{0}: error when get response from server", account.title));
this._twtLogger.addLine(String.Format("{0}: {1}", account.title, response.ErrorMessage));
return;
}
this._twtLogger.addLine(String.Format("{0}> {1}: Tweeted ok!", response.ResponseObject.CreatedDate, account.title));
});
添加:
System.Net.WebException was unhandled by user code
Message=The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.
Source=System
StackTrace:
at System.Net.HttpWebRequest.GetResponse()
at Twitterizer.WebRequestBuilder.ExecuteRequest()
at Twitterizer.Core.TwitterCommand`1.ExecuteCommand()
at Twitterizer.Core.CommandPerformer.PerformAction[T](ICommand`1 command)
at Twitterizer.TwitterFriendship.Create(OAuthTokens tokens, Decimal userId, CreateFriendshipOptions options)
at Twitterizer.TwitterFriendship.Create(OAuthTokens tokens, Decimal userId)
at Twtt2.Core.TwitterActions.twtActions.Follow(twtTwitterAccount account, QueueElement QueElement, OAuthTokens token) in C:\Users\fs\Documents\Visual Studio 2010\Projects\Twtt2\Twtt2\Core\TwitterActions\twtActions.cs:line 148
at Twtt2.Core.TwitterActions.twtActions.Process(EQueue eq) in C:\Users\fs\Documents\Visual Studio 2010\Projects\Twtt2\Twtt2\Core\TwitterActions\twtActions.cs:line 40
at Twtt2.Core.AppQueueProcessor.<QueueProc>b__7(EQueue eq) in C:\Users\fs\Documents\Visual Studio 2010\Projects\Twtt2\Twtt2\Core\AppQueueProcessor.cs:line 90
at System.Threading.Tasks.Parallel.<>c__DisplayClass2d`2.<ForEachWorker>b__23(Int32 i)
at System.Threading.Tasks.Parallel.<>c__DisplayClassf`1.<ForWorker>b__c()
InnerException: System.IO.IOException
Message=Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
Source=System
StackTrace:
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
InnerException: System.Net.Sockets.SocketException
Message=An existing connection was forcibly closed by the remote host
Source=System
ErrorCode=10054
NativeErrorCode=10054
StackTrace:
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
InnerException: