私のプロジェクトでWSDL Webservice経由でいくつかの呼び出しを行っています.Net C#と、XML要求と応答がWSDLで送受信されているのを確認する必要があります。情報?XMLをWSDLに読み込む
1
A
答えて
1
サーバーまたはクライアントマシンでfiddlerを使用して、要求と応答を取得できます。それを起動するだけで、マシン上のhttpトラフィックを監視します。
1
SoapExtensionsを使用する必要があります。このメソッドは、Webサービスが実行するすべての通信を含むログファイルを単に書き出します。 XMLがそこにあります。
C#コード:あなたのweb.configファイルで
// Define a SOAP Extension that traces the SOAP request and SOAP
// response for the XML Web service method the SOAP extension is
// applied to.
public class TraceExtension : SoapExtension
{
Stream oldStream;
Stream newStream;
string filename;
// Save the Stream representing the SOAP request or SOAP response into
// a local memory buffer.
public override Stream ChainStream(Stream stream)
{
oldStream = stream;
newStream = new MemoryStream();
return newStream;
}
// When the SOAP extension is accessed for the first time, the XML Web
// service method it is applied to is accessed to store the file
// name passed in, using the corresponding SoapExtensionAttribute.
public override object GetInitializer(LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute)
{
return ((TraceExtensionAttribute) attribute).Filename;
}
// The SOAP extension was configured to run using a configuration file
// instead of an attribute applied to a specific XML Web service
// method.
public override object GetInitializer(Type WebServiceType)
{
// Return a file name to log the trace information to, based on the
// type.
return "C:\\" + WebServiceType.FullName + ".log";
}
// Receive the file name stored by GetInitializer and store it in a
// member variable for this specific instance.
public override void Initialize(object initializer)
{
filename = (string) initializer;
}
// If the SoapMessageStage is such that the SoapRequest or
// SoapResponse is still in the SOAP format to be sent or received,
// save it out to a file.
public override void ProcessMessage(SoapMessage message)
{
switch (message.Stage)
{
case SoapMessageStage.BeforeSerialize:
break;
case SoapMessageStage.AfterSerialize:
WriteOutput(message);
break;
case SoapMessageStage.BeforeDeserialize:
WriteInput(message);
break;
case SoapMessageStage.AfterDeserialize:
break;
default:
throw new Exception("invalid stage");
}
}
public void WriteOutput(SoapMessage message)
{
newStream.Position = 0;
FileStream fs = new FileStream(filename, FileMode.Append,
FileAccess.Write);
StreamWriter w = new StreamWriter(fs);
string soapString = (message is SoapServerMessage) ? "SoapResponse" : "SoapRequest";
w.WriteLine("-----" + soapString + " at " + DateTime.Now);
w.Flush();
Copy(newStream, fs);
w.Close();
newStream.Position = 0;
Copy(newStream, oldStream);
}
public void WriteInput(SoapMessage message)
{
Copy(oldStream, newStream);
FileStream fs = new FileStream(filename, FileMode.Append,
FileAccess.Write);
StreamWriter w = new StreamWriter(fs);
string soapString = (message is SoapServerMessage) ?
"SoapRequest" : "SoapResponse";
w.WriteLine("-----" + soapString +
" at " + DateTime.Now);
w.Flush();
newStream.Position = 0;
Copy(newStream, fs);
w.Close();
newStream.Position = 0;
}
void Copy(Stream from, Stream to)
{
TextReader reader = new StreamReader(from);
TextWriter writer = new StreamWriter(to);
writer.WriteLine(reader.ReadToEnd());
writer.Flush();
}
}
// Create a SoapExtensionAttribute for the SOAP Extension that can be
// applied to an XML Web service method.
[AttributeUsage(AttributeTargets.Method)]
public class TraceExtensionAttribute : SoapExtensionAttribute
{
private string filename = "c:\\log.txt";
private int priority;
public override Type ExtensionType
{
get { return typeof(TraceExtension); }
}
public override int Priority
{
get { return priority; }
set { priority = value; }
}
public string Filename
{
get
{
return filename;
}
set
{
filename = value;
}
}
}
:ソリューションは、ここで説明されて
<webServices>
<soapExtensionTypes>
<add type="ClassPath.To.Your.TraceExtension, Namespace.Containing.WebserviceCalls" priority="1" group="1"/>
</soapExtensionTypes>
</webServices>
:
soap extension to log my webservices
または
How to trace ScriptService WebService requests?
または
関連する問題
- 1. XMLを読み込むと
- 2. XMLをPHPに読み込む
- 3. XMLを辞書に読み込む
- 4. XMLをデータセットに読み込む方法
- 5. XMLをリストに読み込む<>
- 6. XMLデータをlazarusに読み込む
- 7. XmlをC#のデータグリッドに読み込む
- 8. XMLファイルをDataTableに読み込むコード
- 9. XMLデータファイルをJDBCに読み込む
- 10. Xml要素をExcelに読み込む
- 11. XMLドキュメントを読み込んで読み込む方法
- 12. xmlからデータを読み込む
- 13. xmlマッピングファイルを読み込むSpringメソッド
- 14. angular2のxmlファイルデータを読み込む
- 15. URLを使ってURLからwsdlを読み込む方法
- 16. フラッシュに読み込むページでxmlの読み込みがありますか?
- 17. ページの読み込み中にモーダルを読み込む読み込み後に
- 18. mysqlでxmlファイルを読み込む方法LOAD XML LOCAL INFILE
- 19. 複数のXML要素を読み込み、C#でSQLに書き込む
- 20. データベースから巨大なデータを読み込み、xmlに書き込むJava
- 21. 画像読み込み中にアイコンを読み込む
- 22. C#読み込み/テキストファイルをListViewに読み込む
- 23. ホームページの読み込み後にイメージを読み込む方法
- 24. 正しいスキーマを使ってXMLをデータセットに読み込む
- 25. JavaScriptを使用してXMLデータをKMLファイルに読み込む
- 26. asp.netでXMLファイルを読み込み、読み込みするMVC
- 27. AS2 - クロスドメイン読み込みXML
- 28. XML読み込みタイムアウト
- 29. PHP読み込みXMLファイル
- 30. 動的PDFフォーム(LiveCycle)の読み込み時にXMLをデータセットに読み込む方法は?
あなたは、コードを通してステップすることができますし、Webサービスメソッドを呼び出した後、あなたのプロジェクトで適切にそれを消費している場合、それはあなたがデバッグすると上の[クイックウォッチを行うことができ、うまくいけばです戻り値のXMLを表示する変数。 – MethodMan
"WSDL Webサービス"と言うと、.asmxサービスを意味しますか? –