ArrayOfAnyType возникает при вызове метода: веб-службы GetRangeA1 excel в silverlight 4.0 - PullRequest
0 голосов
/ 07 июля 2010

Я создаю простое приложение silverlight 4.0, используемое для чтения данных файла Excel на сервере share point 2010.Я пытаюсь использовать «Веб-службы Excel», но при вызове метода GetRangeA1 я получаю сообщение об ошибке:

An unhandled exception of type 'System.ServiceModel.Dispatcher.NetDispatcherFaultException' occurred in mscorlib.dll

Additional information: The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://schemas.microsoft.com/office/excel/server/webservices:GetRangeA1Response. The InnerException message was 'Error in line 1 position 361. Element 'http://schemas.microsoft.com/office/excel/server/webservices:anyType' contains data from a type that maps to the name 'http://schemas.microsoft.com/office/excel/server/webservices:ArrayOfAnyType'. The deserializer has no knowledge of any type that maps to this name. Consider using a DataContractResolver or add the type corresponding to 'ArrayOfAnyType' to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding it to the list of known types passed to DataContractSerializer.'.  Please see InnerException for more details.

исходный код выглядит так:

namespace SampleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            ExcelServiceSoapClient xlservice = new ExcelServiceSoapClient();
            xlservice.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
            Status[] outStatus;

            string targetWorkbookPath = "http://phc/Shared%20Documents/sample.xlsx";

            try
            {
                // Call open workbook, and point to the trusted location of the workbook to open.
                string sessionId = xlservice.OpenWorkbook(targetWorkbookPath, "en-US", "en-US", out outStatus);
                Console.WriteLine("sessionID : {0}", sessionId);

                //1. works fines.
                object res = xlservice.GetCellA1(sessionId, "CER by Feature", "B1", true, out outStatus); 

                //2. exception
                xlservice.GetRangeA1(sessionId, "CER by Feature", "H19:H21", true, out outStatus);

                // Close workbook. This also closes session.
                xlservice.CloseWorkbook(sessionId);
            }
            catch (SoapException e)
            {
                Console.WriteLine("SOAP Exception Message: {0}", e.Message);
            }

        }
    }
}

Я совершенно новыйв поисках Silverlight и Sharepoint, я искал вокруг, но мне не повезло, я просто нашел еще один пост здесь , кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 08 апреля 2011

Это, кажется, выдающаяся проблема, но я нашел два обходных пути:

1) Требование изменения в App.config.

http://social.technet.microsoft.com/Forums/en-US/sharepoint2010programming/thread/ab2a08d5-2e91-4dc1-bd80-6fc29b5f14eb

2) Указание перестроить ссылку на службу с помощью svcutil вместо использования Добавить ссылку на службу:

http://social.msdn.microsoft.com/Forums/en-GB/sharepointexcel/thread/2fd36e6b-5fa7-47a4-9d79-b11493d18107

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...