2011-01-06 8 views
3

したがって、私は展開された運用環境で完全に動作するように見えるWCFサービスを持っています。このWCFサービスの単体テスト中に私のビルドが断続的に失敗します。変わった点は、必ずしも同じ単体テストではないが、常にWCFサービスを使用する単体テストであるということです。WCFユニットテストでSystem.ServiceModel.FaultExceptionが発生する

例外:

System.ServiceModel.FaultException[System.ServiceModel.ExceptionDetail]: The number of bytes available is inconsistent with the HTTP Content-Length header. There may have been a network error or the client may be sending invalid requests. 

奇妙な部分は、例外は本当に唯一のビルドマシン上で、決して開発者のマシン上で起こるということです。そして、それは時間の約75%だけ起こるようです。

WCFは.NETの私の最も強い側面ではないので、私を正しい方向に向ける助けが役に立ちます。

+2

私はそれを理解したようです。 catch節の1つがclient.Abort()の代わりにclient.Close()を呼び出していたようです。 client.Close()は何が起こっていたかの追加の例外をスローすることができます。 client.Abort()は例外をスローしません。 –

+0

解決策を回答として投稿して、それを自分で受理してください。あなたの質問は「未回答」のものから削除されます。 – lurkerbelow

+1

申し訳ありません、mkernbach。それをキューから取り出すための答えで更新されました。 –

答えて

1

この問題は、catch節の内部で、私たちが持っていたということになった:catch節がproxy.Abort(使用している必要があります

var proxy = new WcfProxy(); 

try 
{ 
    // Do something. 
} 
catch (Exception ex) 
{ 
    proxy.Close(); 
    throw; 
} 

を)閉じる(とは)別の例外をスローすることができます。

catch (Exception ex) 
{ 
    proxy.Abort(); 
    throw; 
} 
関連する問題