|
|
42
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"...who gives a tinker's cuss?" - Dalek Dave
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
It's plain that they do not yet know what true fear really is. - JSOP 2011
|
|
|
|
|
|
Perfect answer, have my +5
Rajesh B --> A Simple Programmer <--
|
|
|
|
|
while it may be an excellent test, it sure isn't a question. So what is your problem?
|
|
|
|
|
|
Hi - I've just converted an ASP.Net 2.0 solution to 4.0. In general, it seems to work fine, but there's one point in the code that consistently throws an error on 2 Windows 7 machines, one 32-bit, one 64-bit. The same code works fine on a Windows 2003 machine in the 2.0 framework. Note that both versions are being run through Visual Studio, the 2.0 version in VS2005, the 4.0 version in VS2010. I also get the same error message if I publish the 4.0 version to a Windows 7 machine and run it from IIS or in the browser (IE9). The code that breaks is as follows:
string strSelect = "SELECT * FROM Tasks WHERE UserID = " + UserID + " AND ClsdDate IS NULL AND Task LIKE 'Employee Move - " + RequestItemName + "%'";
SqlConnection dsConn = new SqlConnection(ConfigurationManager.AppSettings["DSN_TRACKIT"].ToString());
SqlDataAdapter dsDataAdapter = new SqlDataAdapter(strSelect, dsConn);
SqlCommandBuilder dsCommandBuilder = new SqlCommandBuilder(dsDataAdapter);
dsDataAdapter.UpdateCommand = dsCommandBuilder.GetUpdateCommand();
dsDataAdapter.Fill(dsTrackit,"MoveTasks");
The error message is:
Network access for Distributed Transaction Manager (MSDTC) has been disabled.
Please enable DTC for network access in the security configuration for MSDTC
using the Component Services Administrative tool
Note that the code does not involve a transaction, or more than one SQL Server and my DBA swears that DTC is enabled on ALL SQL Servers involved in this solution.
So what's going on here? I've googled the error message, but I've seen nothing that could explain this. I don't know if this is a Windows 7 issue or a .Net 4.0 issue.
Thanks!
|
|
|
|
|
Look Here[^]
It is an older post, but one of the solutions there might work.
DISCLAIMER: I have never used any technology in the post, but I Googled the error message, and that came up as the first hit.
|
|
|
|
|
Thanks for the link. I've been trying to post a reply to this thread for two days; there must be something in my reply that's causing IE to explode. So I'm going to try to post an overview of what I've tried without posting explicit code. I appreciate your patience.
To try to solve my problem, I set a string variable to be my SELECT statement, where the SELECT statement does a SELECT COUNT(*) and evoked it with ExecuteScalar.
This errors out with the same error message when I try to open my connection.
I dug farther into the code and realized that this SELECT statement is inside a transaction that's opened two levels up. Within the transaction there are calls to another database server, so I'm guessing that that's where the DTC error is coming from.
Basically, within the transaction (which is set to IsolationLevel ReadCommitted), there are two calls to a SQL Server 2008 R2 server which work fine. Then comes a method that calls a method that calls my SELECT statement to a SQL Server 2003 server.
Note that this code works fine in .Net 2.0, but breaks if I convert the solution to 4.0. It also breaks if I convert the solution to 3.5. Could the problem be the IsolationLevel setting? I can't imagine why that would be the case, but....
I did manage to get around this problem by creating a stored procedure to do the SELECT statement and calling it through a linked server on the 2008 R2 machine.
HOWEVER, when the next ADO.Net call is made to the 2008 R2 machine, I get "Error Message: The operation is not valid for the state of the transaction."
I'm stumped. Any ideas?
|
|
|
|
|
Just want to clarify that I'm only an idiot occasionally. I meant to say SQL Server 2005 server, not 2003....
|
|
|
|
|
I am not an expert in that field, so I have no more ideas. Sorry.
Public Sub GetOffTheComputer()
Throw New NotImplementedException()
End Sub
|
|
|
|
|
That's okay, thanks for your input.
|
|
|
|
|
I figured this out and it's so simple I want to shoot myself. But I won't; no need to dial 911. I'm calling my code on a new Windows 7 machine. To check if MSDTC was enabled for this machine, I went to Administrative Tools -> Component Services -> Computers -> My Computer and right-clicked for Properties. All I saw was a screen telling me that "use local coordinator" was enabled. Okay, I thought, it looks different from the SQL Server settings because it's a client. BUT - I discovered today that there's a whole host of other MSDTC settings on my machine. You get to them by going to Administrative Tools -> Component Services -> Computers -> My Computer -> Distributed Transactions -> Local DTC and right clicking for Properties. Sure enough, my machine wasn't set to allow DTC. Once I changed this, every works fine (well, now I've got another issue, but so what else is new?). I'd probably read this a million times on different websites and it just hadn't taken. Thanks to http://pongsathonkeng.blogspot.com/2011/02/msdtc-setup.html[^] for showing me in pictures what I needed to do.
|
|
|
|
|
I figured this out and it's so simple I want to shoot myself. But I won't; no need to dial 911. I'm calling my code on a new Windows 7 machine. To check if MSDTC was enabled for this machine, I went to Administrative Tools -> Component Services -> Computers -> My Computer and right-clicked for Properties. All I saw was a screen telling me that "use local coordinator" was enabled. Okay, I thought, it looks different from the SQL Server settings because it's a client. BUT - I discovered today that there's a whole host of other MSDTC settings on my machine. You get to them by going to Administrative Tools -> Component Services -> Computers -> My Computer -> Distributed Transactions -> Local DTC and right clicking for Properties. Sure enough, my machine wasn't set to allow DTC. Once I changed this, every works fine (well, now I've got another issue, but so what else is new?). I'd probably read this a million times on different websites and it just hadn't taken. Thanks to http://pongsathonkeng.blogspot.com/2011/02/msdtc-setup.html[^] for showing me in pictures what I needed to do.
|
|
|
|
|
Your code can easily become a target for SQL injection attacks. To avoid it, remove the string concatenation and use parametrized queries or stored procedures.
|
|
|
|
|
Is there any one who know Unibasic/pickbasic programming language ?
|
|
|
|
|
Lots of people. My wife does, for one. Not sure how this is .NET related though.
|
|
|
|
|
There is no separate discussion link for Unibasic and we can connect unibasic/unidata using redback server with .net easily .So many unibasic developers know .net as well
|
|
|
|
|
It's not a .NET question. Just because they can connect together doesn't mean that it has anything to do with it.
|
|
|
|
|
Hello,
My program have two threads using a byte list.
Every time some of them manipulate the list i use the lock statment:
lock(byte_list)
{
.Do some work on the byte_list
}
But it seems that the synchronization doesnt work i get strange thigs it looks like both threads work simultaneously on the list.
Any one have an idea whats the problem?
Thanks.
|
|
|
|
|
Try using a separate object for the lock
private static object lockObj = new object();
lock(lockObj)
{
... Do some work on the byte_list
}
Also, format you code snippets when posting
No comment
|
|
|
|
|
I do think it is good practice to have a seperate lock object but i don't see why it wouldn't work on the bytearray itself. I would like to know if there is a difference though.
All i can think of is that the byte array is locked in one place but marrely used without a lock in another.
Alternetively he could be adressing a ref to the same array.... And as such locking two seperate objects.
No doubt he'll get back and tell what was wrong.
Cheers, AT
Cogito ergo sum
|
|
|
|
|
Addy Tas wrote: No doubt he'll get back and tell what was wrong.
Don't hold your breath on that.
No comment
|
|
|
|
|
Still holding my breath... starting to turn blue
Cheers, AT
Cogito ergo sum
|
|
|
|
|
Hi,
I have a C# Forms application that hosts an ActivX control. I added a new method to the ActivX control called “GetRange()”. I then deleted the control from the Form, deleted it from the Toolbox and deleted the two interop dll references. I then re added the control. All works fine in debug build but in release mode I get an error...
“AxChart_v2Lib.AxChart_v2' does not contain a definition for 'GetRange' and no extension method 'GetRange' accepting a first argument of type 'AxChart_v2Lib.AxChart_v2' could be found (are you missing a using directive or an assembly reference?)”.
I have noticed that of two interop dll references only one has the new method in it, AxChart_v2Lib does not contain the new method, however Chart_v2Lib does.
Any ideas?
Thanks.
|
|
|
|