(разве веб-сервисы не зависят от платформы?) Веб-сервис работает в проектах .net 2.0+, но не .net 1.1

Мой коллега предоставил мне веб-службу, которую я протестировал, создав быстрый проект .net 3.5. служба предоставляет простой метод, который возвращает DataTable, и все работает нормально.

Однако производственным проектом является .net 1.1, и я получаю сообщение об ошибке выполнения в строке, которая создает объект веб-службы:


The XML element '' from namespace 'web/InternetData' is already present in the current scope. Use XML attributes to specify another XML name or namespace for the element. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: The XML element '' from namespace 'web/InternetData' is already present in the current scope. Use XML attributes to specify another XML name or namespace for the element.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 
[InvalidOperationException: The XML element '' from namespace 'http://web/InternetData' is already present in the current scope. Use XML attributes to specify another XML name or namespace for the element.]
   System.Xml.Serialization.XmlReflectionImporter.AddUniqueAccessor(INameScope scope, Accessor accessor) +866695
   System.Xml.Serialization.XmlReflectionImporter.AddUniqueAccessor(MemberMapping member, INameScope elements, INameScope attributes, Boolean isSequence) +84
   System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter) +1553

[InvalidOperationException: There was an error reflecting 'AccountNumberResult'.]
   System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers, String ns, Boolean hasWrapperElement, Boolean rpc, Boolean openModel, RecursionLimiter limiter) +843
   System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(String elementName, String ns, XmlReflectionMember[] members, Boolean hasWrapperElement, Boolean rpc, Boolean openModel, XmlMappingAccess access) +130
   System.Web.Services.Protocols.SoapReflector.ImportMembersMapping(XmlReflectionImporter xmlImporter, SoapReflectionImporter soapImporter, Boolean serviceDefaultIsEncoded, Boolean rpc, SoapBindingUse use, SoapParameterStyle paramStyle, String elementName, String elementNamespace, Boolean nsIsDefault, XmlReflectionMember[] members, Boolean validate, Boolean openModel, String key, Boolean writeAccess) +223
   System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo methodInfo, Boolean client, XmlReflectionImporter xmlImporter, SoapReflectionImporter soapImporter, String defaultNs) +2989

[InvalidOperationException: Method Service.CashieringSupport_By_AccountNumber can not be reflected.]

Моя первая мысль - создать отдельный проект 2.0, который сбрасывает данные для повторного использования проектом 1.1, но это кажется ненужным шагом.


person John    schedule 30.09.2009    source источник


Ответы (1)


Веб-сервисы должны быть независимыми от платформы - если вы не сделаете что-то, что сделает их платформенно-зависимыми. Что-то вроде возврата данных, зависящих от платформы. Что-то вроде DataTable.

person John Saunders    schedule 01.10.2009
comment
Неплохо подмечено. Кажется, что возвращаемый тип не может быть проанализирован моим приложением 1.1. Я закончил тем, что написал дамп данных в 2.0, который затем сожрал приложение 1.1. Не идеально, но работает. - person John; 04.11.2009