アプリケーションにアセンブリ リークがあるようです。HttpWebRequest オブジェクトを使用して Web サービス呼び出しが呼び出されるすべての呼び出しで、httpWebRequest.GetResponse() 呼び出しで動的アセンブリが読み込まれることに気付きました。
アセンブリがデバッガー ('w3wp.exe' (Managed): Loaded '7-6jav6v', No symbols loaded.) を介して読み込まれるのを確認できますが、なぜこれが発生するのかわかりません。
他の誰かがこれを経験したことがありますか?
編集:この質問に説明を追加するには。C# では、XmlSerializer を作成すると、シリアル化を完了するためにアセンブリが作成されます。ツールを使用して事前にこれを行う場合を除き、これは常に発生します。(Type type) または (Type type, string "namespace") のコンストラクターを使用すると、1 つのアセンブリのみが生成されます。他のコンストラクターを使用すると、シリアル化ごとに新しいアセンブリが生成されます。
これは、上記の問題には当てはまりません。
コードベースには、soap 呼び出しを手動で行い、文字列を返すコード ブロックがあります (文字列は xml、ex: です)。このコード ブロックが実行されるたびに、新しいアセンブリが作成されます。これらのアセンブリの 1 つを調べると、「XmlSerializationWriter1.Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.XmlSerializer1.ArrayOfObjectSerializer.ArrayOfObjectSerializer1.ArrayOfObjectSerializer2」が参照されます。
理解を深めるために、コード ブロックは以下のようになり、最後の行が実行されるとアセンブリが生成されます...このブロックが実行されるたびに 1 つの複数のアセンブリが生成されます。
HttpWebRequest oHttpWebRequest =(HttpWebRequest)WebRequest.Create("URL TO WEBSERVICE");
oHttpWebRequest.Timeout =((1000*60)*30);
oHttpWebRequest.Method ="POST" ;
oHttpWebRequest.ContentType ="text/xml" ;
oHttpWebRequest.Headers.Add("SOAPAction: http://www.tempuri.com/"+WebMethodName);
StreamWriter oStreamWriter = new StreamWriter(oHttpWebRequest.GetRequestStream()) ;
string SoapRequest=@"<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/""><soap:Body>";
SoapRequest=SoapRequest + HttpUtility.HtmlDecode(XmlHttpRequestData);
SoapRequest=SoapRequest + @"</soap:Body></soap:Envelope>";
oStreamWriter.Write(SoapRequest);
oStreamWriter.Close();
oHttpWebRequest.ProtocolVersion.Build;
WebResponse oWebResponse = oHttpWebRequest.GetResponse() ;