Hi Alir,
Thanks for your response.
After view the wsdl description and creating a local proxy (.net) of the
webservice you exposed, I think I've got the point of this issue. In the
webservice, we can find a webmethod named "SaveFile", its method signature
is
public bool SaveFile(string path, Stream contents)
and the "Stream contents" is just the cause of the problem. It is a .net
specific class which derived from MarshalByRef object and when consuming it
through .net client program, that's ok. However, when creating it through
pure native C++, the sproxy tool don't how to represent such class in
native c++( infact, there is no means to represent a .net specific
MarshalByRef class in native c++).
I'm sure the actual purpose of the "SaveFile" method is let the client
upload a file and save on the serverside, yes? In such scenario, I'd
strongly recommend that we use some basic type to represent the file
stream, for example, a byte array should be the proper one. As you've
mentioned that you can not modify the serverside code, I'm afraid that'll
be very hard to workaround it, can you contact the service's developer so
that they can consider on this? If that's really impossible, I think we
may need to consider use managed c++(or other .net language) to consume the
webservice.
Please feel free to let me know if you have any other concerns or ideas.
Thanks,
Steven Cheng
Microsoft Online Support
Get Secure!
www.microsoft.com/security
--------------------
From: "AliR" <Al**@online.nospam>
Newsgroups: microsoft.public.dotnet.framework.webservices
References: <43**********@alt.athenanews.com>
<gb**************@TK2MSFTNGXA01.phx.gbl>
Subject: Re: Using a WebService from VC++
Date: Fri, 7 Oct 2005 10:22:42 -0500
Lines: 92
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1506
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
NNTP-Posting-Host: 216.128.74.207
Message-ID: <43**********@alt.athenanews.com>
X-Trace: alt.athenanews.com 1128698637 216.128.74.207 (7 Oct 2005 11:23:57
-0400)
X-Complaints-To:
ab***@athenanews.com
Path:
TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfee d00.sul.t-online.de!t-onli
ne.de!border2.nntp.dca.giganews.com!nntp.giganews. com!nx02.iad01.newshosting
.com!newshosting.com!novia!feed4.newsreader.com!ne wsreader.com!alt.athenanew
s.com!not-for-mail
microsoft.public.dotnet.framework.webservices:8157
X-Tomcat-NG: microsoft.public.dotnet.framework.webservices
Hi Steven,
Thanks for the replay. Your assumptions are correct about something
extending MarshalByRefObject. I am not very good at .Net yet, so what I am
going to do is send you the ip address of the webservice and let you
experiment with it (
http://216.60.35.251/webService.asmx).
As of right not I can't change the code of the web service, but I might have
to find a way if it won't work the way it is.
AliR.
"Steven Cheng[MSFT]" <st*****@online.microsoft.com> wrote in message
news:gb**************@TK2MSFTNGXA01.phx.gbl...
Hi Alir,
Welcome to MSDN newsgroup.
From your description, when you use the VS.NET IDE(sproxy.exe) to add
webreference for a c# created webservice in MFC application, you got some
error on "one of the object wanting to extendMarshalByRefObject object".
Based on my experience, this is likelye due to the sproxy.exe can not
generate client type for some certain complex types in the webservice
which is specific to .NET framework. Since sproxy.exe is used for generating
native c++ proxy class, it supports limited types, see:
http://msdn.microsoft.com/library/en...rverSPROXYType Mapping.asp?frame=true
In your problem, seems the webservice contains some paramter or return
object which derived from MarshalByRefObject, yes? Would you provide the
detailed serverside webservice 's webmethod signature? Also, you can try
change the webmethod's paramter or return type to some simple types to see
whether the problem will go away.
Thanks,
Steven Cheng
Microsoft Online Support
Get Secure! www.microsoft.com/security
--------------------
From: "AliR" <Al**@online.nospam>
Newsgroups: microsoft.public.dotnet.framework.webservices
Subject: Using a WebService from VC++
Date: Thu, 6 Oct 2005 10:46:44 -0500
Lines: 15
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1506
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
NNTP-Posting-Host: 216.128.74.207
Message-ID: <43**********@alt.athenanews.com>
X-Trace: alt.athenanews.com 1128613678 216.128.74.207 (6 Oct 2005 11:47:58
-0400)
X-Complaints-To: ab***@athenanews.com
Path:
TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfee d00.sul.t-online.de!t-onli
ne.de!border2.nntp.dca.giganews.com!nntp.giganews. com!nx01.iad01.newshosting
.com!newshosting.com!38.144.126.115.MISMATCH!feed7 .newsreader.com!feed4.news reader.com!newsreader.com!alt.athenanews.com!not-for-mail
Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.webservices:8131
X-Tomcat-NG: microsoft.public.dotnet.framework.webservices
Hi Everyone,
I have a Visual C++ MFC program, and I am trying to use a webservice
written in C#. When I add the webservice to my project using Add Web Reference
the sproxy compiler complains about one of the object wanting to extend
MarshalByRefObject object, and I get an error SDL1030.
I can use the webservice in a C# project just fine but not the C++.
Can anyone help me out with this?
Thanks
AliR.