読者です 読者をやめる 読者になる 読者になる

銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

Fiddler を起動していると、MSDeploy に失敗します

MSBuild MSDeploy

タイトルで言いたいことほぼすべてなんですが、地味にはまったので共有します。stackoverflow にも情報があります。

stackoverflow.com

MSDeployの送信元でFiddlerを起動していると、MSDeploy(MSBuildでのDeployOnBuild=trueも含む)処理に失敗します。エラーのメッセージがわかりづらくて、

Web 配置は、サーバーとの接続で問題を検出しましたため、接続を終了する必要がありました。
予期しないファイルの終わりが検出されました。

といった感じのメッセージです。MSDeployの配置される側になるコンピューターのイベントビューアーにも記録されています。

トレース展開エージェントで例外が発生し、クライアントに伝達されました。要求 ID: '<GUID>'。要求タイムスタンプ: '2016/01/08 15:18:09'。エラーの詳細: 
System.IO.EndOfStreamException: ストリームの終わりを超えて読み取ることはできません。
   場所 System.IO.BinaryReader.FillBuffer(Int32 numBytes)
   場所 System.IO.BinaryReader.ReadInt16()
   場所 Microsoft.Web.Deployment.PackageDeserializer.GetNextEntryType()
   場所 Microsoft.Web.Deployment.SerializationProvider..ctor(DeploymentBaseContext baseContext, PackageDeserializer deserializer)
   場所 Microsoft.Web.Deployment.PackageDeserializer.GetSerializationProvider()
   場所 Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable`1 passId, String user, String siteName)
   場所 Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData)
   場所 Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData)

Fiddler閉じておけという話なんですが、自分の場合直前に別件の調査でFiddlerを開いて閉じ忘れていました...