Discussion:
ASP.NET CreateUserWizard, and Transaction scope issue on remote SQLServer
(too old to reply)
Lance Wynn
2008-12-13 16:11:43 UTC
Permalink
Hi all, I wasn't sure if this is better as a dotnet question, or a dts
question..

I have a user signup page that uses the createuserwizard. I need to add
some additional information after the ASP user is created, so I thought I'd
use Transaction scope to encapsulate the creation process so if anything
fails, it will rollback everything.

I create a private transactionscope in the page code behind, and instantiate
it in the CreateUserWizard1_CreatingUser event. In the
CreateUserWizard1_CreatedUser event, I am inserting a record into a separate
table. Then I complete the transaction, and dispose of the
transactionscope.

If an error happens I dispose of the transactionscope without completing .
This works fine when running SQLServer 2005 on my local dev box, but when I
put it on a webserver pointing at a remote DB, it just hangs until the
asp.net page gets a generic timeout error.

Here's what I have come up with so far in my debug efforts:

1. Looking at the transaction in the component services, I can see the
transaction gets created on the dbserver
2. Looking at the sql activity monitor, I can see the the spid that is
executing the create user stored proc, it shows the last command executed
as: testdb.dbo.aspnet_Membership_CreateUser;1
3. There does not appear to be any blocking at all going on, and since this
is test only, there is only the one transaction on the server.
4. The SQL server logs show no indication of an error.

If I remove the calls to transactionscope, then it works fine (albeit
without the transaction of course).

I am a bit stumped as to how to debug this issue since there are really no
meaningful errors.

If anyone can help me out on this, I would be very grateful.
Lance Wynn
2008-12-19 03:57:41 UTC
Permalink
Problem solved, as always; it was something stupid on my end. Apparently,
the Windows Firewall was running on the SQL Server, and blocking the DTC
communications causing the timeout. I opened the appropriate port, and it
started working fine.

Lance
Post by Lance Wynn
Hi all, I wasn't sure if this is better as a dotnet question, or a dts
question..
I have a user signup page that uses the createuserwizard. I need to add
some additional information after the ASP user is created, so I thought
I'd use Transaction scope to encapsulate the creation process so if
anything fails, it will rollback everything.
I create a private transactionscope in the page code behind, and
instantiate it in the CreateUserWizard1_CreatingUser event. In the
CreateUserWizard1_CreatedUser event, I am inserting a record into a
separate table. Then I complete the transaction, and dispose of the
transactionscope.
If an error happens I dispose of the transactionscope without completing .
This works fine when running SQLServer 2005 on my local dev box, but when
I put it on a webserver pointing at a remote DB, it just hangs until the
asp.net page gets a generic timeout error.
1. Looking at the transaction in the component services, I can see the
transaction gets created on the dbserver
2. Looking at the sql activity monitor, I can see the the spid that is
executing the create user stored proc, it shows the last command executed
as: testdb.dbo.aspnet_Membership_CreateUser;1
3. There does not appear to be any blocking at all going on, and since
this is test only, there is only the one transaction on the server.
4. The SQL server logs show no indication of an error.
If I remove the calls to transactionscope, then it works fine (albeit
without the transaction of course).
I am a bit stumped as to how to debug this issue since there are really no
meaningful errors.
If anyone can help me out on this, I would be very grateful.
Loading...