リモートパーティがトランスポートストリームを終了したため、認証に失敗しました。

表題のエラーが発生。

‘/’ アプリケーションでサーバー エラーが発生しました。

説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。 

例外の詳細: System.IO.IOException: リモート パーティがトランスポート ストリームを終了したため、認証に失敗しました

スタック トレース:

[IOException: リモート パーティがトランスポート ストリームを終了したため、認証に失敗しました。] System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) +6803088 System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) +132 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) +281 System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +49 System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) +162 System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) +542 System.Net.TlsStream.CallProcessAuthentication(Object state) +42 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) +228 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) +21 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) +64 System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) +795 System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) +52 System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size) +21 System.Net.ConnectStream.WriteHeaders(Boolean async) +388

[WebException: 接続が切断されました: 送信時に、予期しないエラーが発生しました。。] System.Net.HttpWebRequest.GetResponse() +1399 System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) +83 System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) +99 System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) +69 System.Xml.XmlTextReaderImpl.FinishInitUriString() +76 System.Xml.XmlTextReaderImpl..ctor(String uriStr, XmlReaderSettings settings, XmlParserContext context, XmlResolver uriResolver) +186 System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext) +66 System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings, XmlParserContext inputContext) +45 System.Xml.Linq.XDocument.Load(String uri, LoadOptions options) +45 h

原因は、XDocument.Load で読み込んでいたrssのサービスが終了していたため。

ASP.NET MVC ActionResultの派生型

http://msdn.microsoft.com/ja-jp/magazine/dd695917.aspx

「ASP.NET MVC Controller の動作」より、ActionResult のディライブドクラスを抜き出したもの。

名前 フレームワークの動作 生成メソッド
ContentResult 文字列値を HTTP 応答に直接書き込みます。 Content
EmptyResult HTTP 応答に書き込みません。  
FileContentResult ファイルの内容 (バイトの配列として表される) を取得し、HTTP 応答に書き込みます。 File
FilePathResult 指定した場所にあるファイルの内容を取得し、HTTP 応答に書き込みます。 File
FileStreamResult コントローラによって生成されたファイル ストリームを取得し、HTTP 応答に書き込みます。 File
HttpUnauthorizedResult 承認チェックが失敗したときに承認フィルタによって使用される特殊な= 結果です。  
JavaScriptResult クライアントが実行するスクリプトをクライアントに返します。 JavaScript
JsonResult JavaScript Object Notation (JSON) のデータをクライアントに返します。 Json
RedirectResult クライアントを新しい URL にリダイレクトします。 Redirect
RedirectToRouteResult 指定されたビューをレンダリングして HTML フラグメントを返します (通常は AJAX のシナリオで使用されます)。 RedirectToRoute / RedirectToAction
PartialViewResult 指定されたビューをレンダリングして HTML フラグメントを返します (通常は AJAX のシナリオで使用されます)。 PartialView
ViewResult 指定されたビューをレンダリングして HTML をクライアントに返します。 View

MVC 3 入れる前のプロジェクトテンプレート

MVC 3 を入れる前のプロジェクトテンプレートを記念?にスクリーンショット

image

さて、MVC 3を入れるとどうなるか・・・

単に MVC 3 が増えただけだったw

image

しかし、MVC 3を選ぶと、Razor ビュー エンジンがもれなくついてくる。

image

Razor で、ようやくMVCを使う気になってきた。