タイトルで言いたいことほぼすべてなんですが、地味にはまったので共有します。stackoverflow にも情報があります。
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を開いて閉じ忘れていました...