Response.Redirect veya Response.End'i kullandığımda OnTransactionCommit yöntemi IIS 7'de çağrılmıyor. Aşağıdaki kod IIS 6'da beklendiği gibi çalışıyor ("Comist ...", "Tamam" dan sonra çıkıyor), ancak IIS 7'de Response.End'i kaldırmazsam yalnızca "OK" alırım. Yanıtı değiştirirseniz Err.Raise ile IIS'nin her iki sürümünde OnTransactionAbort yöntemi çağrılır.Response.Redirect/End, IIS7 üzerinde Klasik ASP'de işlem gerçekleştirmiyor
Boru hattını Klasik olarak değiştirmeyi denedim ancak bunun hiçbir etkisi olmadı. Bu yöntemin uygulanabilmesi için hangi ayarı değiştirmem gerektiğini herhangi bir ışık tutabilir mi?
<%@ Transaction="Supported" Language="VBScript" %>
<% Option Explicit %>
<%
'Called by context unless transaction is aborted
Sub OnTransactionCommit()
Response.Write("Commiting...")
Response.Flush
End Sub
'Called by context when transaction is aborted
Sub OnTransactionAbort()
Response.Write("Aborting...")
Response.Flush
End Sub
Response.Write("OK<br/>")
Response.Flush
Response.End
'Err.Raise 1, "test"
%>
MTS ("Microsoft Transaction Server") bileşeninin yüklü olduğundan emin olun, Windows Server 2008 –
@Sean'da varsayılan olarak yüklenmediğine inanıyorum, ancak yüklü olabilir, ancak çalışıyor olabilir. Servis kontrol panelini kontrol edin. [daha fazla ayrıntı] (http://www.asp101.com/articles/chris/asptransactions/default.asp) Bu, tüm bunları gördüğüm kadarıyla IIS 6'nın bir parçası olduğunu söyledi. "IIS 7 ve sonrası. –
MTS artık COM + 'nun bir parçasıdır. Oldukça emin yüklü ve düzgün çalışıyor. 'Response.End' deyimini kaldırdığımda ancak 'ObjectContext.SetAbort' beklendiği gibi çalışır ancak IIS 6'da yanıtı sonlandırdığımda bile çalışır. –