Tüm SOAP isteklerini ve yanıtlarını günlüğe kaydetmeyi amaçlayan bir SoapExtension'ım var. MS Soap Toolkit (OnBase İş Akışı) kullanan bir uygulamadan yapılan aramalar için iyi çalışır. Ama bir html sayfasında $ .ajax() tarafından yapılan aramalar için işe yaramıyor.ScriptService WebService istekleri nasıl izlenir?
[WebService(Namespace = XmlSerializationService.DefaultNamespace)]
[ScriptService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class DepartmentAssigneeService : WebService
{
private readonly DepartmentAssigneeController _controller = new DepartmentAssigneeController();
/// <summary>
/// Fetches the role items.
/// </summary>
/// <returns></returns>
[WebMethod]
[SoapLog]
public ListItem[] FetchDepartmentItems()
{
return CreateListItems(_controller.FetchDepartments());
}
}
Ve burada SoapExtension ve SoapExtensionAttribute için temel bilgiler şunlardır::
$.ajax({
type: "POST",
url: url,
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json"
});
Bu WebService ve ScriptService ile işaretlenmiş bir ASP.NET 3.5 WebService aradığını nitelikleri:
public class LoggingSoapExtension : SoapExtension, IDisposable { /*...*/ }
[AttributeUsage(AttributeTargets.Method)]
public sealed class SoapLogAttribute : SoapExtensionAttribute { /*...*/ }
İşte bir örnek
LoggingSoapExtension'ın $ .ajax() istekleri üzerinde yürütülmesine izin verecek bir şey eksik miyim?
Güncelleme
@Chris Brandsma
Eğer Json talebinde web hizmeti (dataType: "json") üzerinden XML yerine sonuçlanır çünkü olabilir. Bu nedenle ScriptService özniteliği etkinleştiriliyor, ancak SOAP iletileri göndermiyorsunuz. SoapExtension neden çalışmadığını cevapları
. ScriptService ile izleme için herhangi bir öneriniz var mı? Akla gelen tek şey, bir isteği günlüğe kaydetmek için bir yöntem sağlayan bir ScriptService temel sınıfıdır. Ama sonra her ScriptService WebService'de her WebMethod'da bu yöntemi çağırmak zorundayım (birkaç tane var). Mümkünse bir şeyi SoapExtension özelliği olarak temiz ve basit bir şekilde kullanmak isterim.
CapturedStream nedir? – Naor
http://stackoverflow.com/questions/386487/capturing-html-generated-from-asp-net/386648#386648 adresindeki ResponseCaptureStream ile aynıdır – jrummell