0

アプリケーションで Visual Studio team Server 2005 を使用して自動化テストを実行しています。アプリケーションは、BO レイヤーからのマルチスレッド機能を備えた WCF サービスです。VSTS のユーザー負荷は 2 で、Think Time は 20 秒です (1 つの要求を送信した後の待機時間)。しかし、これを行うと、アプリケーションは「System.Threading.ThreadAbortException」エラーを受け取ります。エラーが発生している特定の領域は、 XslCompiledTransform transform.Transform(xmlReader, outputXmlWriter) です。 これを行うことで、実際にxml(ビューモデルをシリアル化した後にxmlが生成される)をxsltオブジェクト(Transform)にフィードしようとしています。" System.Threading.ThreadAbortExceptionアプリケーションを正常にロードしている間はエラーは発生していませんが、複数のユーザーが同時に上記のメソッドにアクセスしている間は発生します。エラーの詳細は以下に掲載されています。

  • ログ名: アプリケーション ソース: Proposal.Service 日付: 14/02/2014 1:44:20 AM イベント ID: 100 タスク カテゴリ: なし レベル: エラー キーワード: クラシック ユーザー: 該当なし コンピューター:
    説明: タイムスタンプ: 14/02 /2014 6:44:20 AM メッセージ: HandlingInstanceID: 279fbd41-c40c-43aa-bc1a-07d3bc950cc8

    タイプ 'System.Threading.ThreadAbortException' の例外が発生し、キャッチされました。

2014/02/14 01:44:20 タイプ: System.Threading.ThreadAbortException、mscorlib、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089 メッセージ: スレッドが中止されました。ソース: System.Xml.Xsl.CompiledQuery.1 ヘルプ リンク: ExceptionState: データ: System.Collections.ListDictionaryInternal TargetSite: Void (System.Xml.Xsl.Runtime.XmlQueryRuntime, System.Xml.XPath.XPathNavigator) スタック トレース: ( XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime、XPathNavigator {urn:schemas-microsoft-com:xslt-debug}current) at Root(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime) ) Execute(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime) at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlSequenceWriter results) at System.Xml.Xsl.1.GetTransformedXml(String inputFileName, Object viewModelPart) at Proposal.Generator.Presenter.BaseClasses.BaseSectionPresenter1. TransformTemplateUsingXslt (文字列 inputXsltName、ストリーム outpuStream、オブジェクト viewModelPart、ブール addNumberPart、ブール addstylePart、リスト1 richTextPlaceholder, List1 richText、文字列 wordDoc)

4

1 に答える 1

0

「一度に複数のユーザーが上記のメソッドに同時にアクセスしているときに発生する」と言います。

あなたのエラーは から来ているように見えますがXslCompiledTransform.Transform()、MSDN は と述べていますがThe XslCompiledTransform object is thread safe once it has been loaded. In other words, after the Load method has successfully completed, the Transform method can be called simultaneously from multiple threads.、それも述べていNote: The Load method is not thread safe when called simultaneously from multiple threads.ます。あなたのコードがまさにそれを行った(つまり、同時にロードされた)可能性はありますか?それが後のスレッドエラーを引き起こしますか?

于 2014-12-05T12:36:40.313 に答える