RE: RE: WCF Service Library: “cannot change thread mode after it is set”
- From: stcheng@xxxxxxxxxxxxxxxxxxxx (Steven Cheng[MSFT])
- Date: Fri, 05 Oct 2007 09:18:32 GMT
Hi Phillip,
From your description, you're encountering some error when consumning a WCFservice object in non-WPF clients(console, windows service ...), correct?
I've viewed your two messages and currently my understanding is that the
problem only occurs when you call that WCF method(or the object) which will
invoke another COM interoped object, is this the case? If so, I also think
the problem should be concentreated on the COM component. Would you please
provide some further description on that method which call the COM
objects(the RCW wrapper?) , are you directly creating the RCW wrapper
object in WCF method?
Normally, for cases that we need to call a component in STA apartment(and
the current thread context is already set as "MTA"), you can consider
creating a separate thread to invoke the COM objects calling. e.g.
============
protected void YourMethodInMTAContext{
..............
Thread thread = new Thread(delegate() {
//the code that will call the STA COM object
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
}
=========================
If there is anything else I missed, please feel free to post here.
Sincerely,
Steven Cheng
Microsoft MSDN Online Support Lead
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
--------------------
From: =?Utf-8?B?UGhpbGxpcCBXaWxsaWFtcw==?= <WEBSWAPP@xxxxxxxxxxxxxxxxx>
References: <AAE526BE-8C21-4DF0-BD5B-F0E63926EE4C@xxxxxxxxxxxxx>
Subject: =?Utf-8?Q?RE:_WCF_Service_Library:_=E2=80=9Ccannot?=
=?Utf-8?Q?_change_thread_mode_after_it_is_?=
=?Utf-8?Q?set=E2=80=9D?=
Date: Thu, 4 Oct 2007 14:06:01 -0700
I also tried a fourth endpoint hosted in IIS, it has the same problem asthe
console host.types
So to summarize, I have a WCF service library hosted by four different
of application: WPF, console, Windows Service and IIS. The four endpointsCOM
work fine from any client application when accessing methods that do not
activate the COM object.
If a client application attempts to access a method that activates the COM
object by connecting to the endpoint that is hosted in WPF it works fine.
The problem is when a client app accesses the methods that activate the
object at the endpoints that are hosted by console, or IIS or WindowsService
apps.WCF
--
Regards,
Phillip Williams (MCPD Web Developer)
http://mcts-study-practices.com/
http://www.webswapp.com
"Phillip Williams" wrote:
I have a JavaClass component (dll) that I am required to access within a
..NET3.0Service Library and then expose the data that it returns to other
areapps. The WCF Service Library is written in VB but the host and client
notwritten in C#. The Service library works fine (in instantiating the COM
object) if the calling host is a WPF (Windows Application) but it does
it iswork if the calling host were a console or a Windows Service.
On the console host, I get a message â??cannot change thread mode after
throughsetâ??echoed on the host console window. If I step using the debugger
problem isthe service, I find that it catches a
System.Runtime.InteropServices.COMException at the line: myVar = New
myLib.SomeObject
After searching for similar error messages, I understood that the
still therelated to the threading model of the COM object so I added STAThread on
every method in the service, host and the client applications. But
same problem exists for the console and WinService host.
Any ideas?
--
Regards,
Phillip Williams (MCPD Web Developer)
http://mcts-study-practices.com/
http://www.webswapp.com
.
- Follow-Ups:
- RE: RE: WCF Service Library: “cannot change thread mode after it i
- From: Phillip Williams
- RE: RE: WCF Service Library: “cannot change thread mode after it i
- Prev by Date: Framing mode Singleton is not supported.
- Next by Date: RE: RE: WCF Service Library: “cannot change thread mode after it i
- Previous by thread: Framing mode Singleton is not supported.
- Next by thread: RE: RE: WCF Service Library: “cannot change thread mode after it i
- Index(es):
Relevant Pages
|