Как я могу получить простой веб-сервис C # для возвратазаголовок? - PullRequest
1 голос
/ 10 ноября 2010

Я написал очень простой веб-сервис, который возвращает XML-документ.

В настоящее время заголовок этого документа <?xml version="1.0" encoding="utf-8" ?>

, и я хотел бы, чтобы он возвращал <?xml version="1.0" encoding="utf-16" ?>

Как изменить выходную кодировку по умолчанию в .asmxили файл .cs?

smo.asmx
<%@ WebService Language="C#" Class="smo" %>


smo.asmx
using <blah>

[WebService(Namespace="http://www.bl.uk/webservices/")]
public class smo : WebService
{
    [XmlRoot(ElementName = "SQLServer")]
    public class CDatabaseBackup
{
    public string ServerName;
    public string DatabaseCount;
     }

//
// Generic SMO query processor
//
[WebMethod(Description = "WMIClassProperty: ", EnableSession = false, CacheDuration=60)]

public CDatabaseBackup smoDatabaseBackupStatus(string SQLServerName)
{
    CDatabaseBackup result = new CDatabaseBackup();
    Server svr;
              <blah>
              return result;
      }

В конечном итоге этот веб-сервис будет использоваться в функции SQL Server и преобразовываться в тип данных xml.Согласно документации это должно быть UTF-16.

alter
procedure monitor_sqlbackupaudit 
as
begin

declare @l_xml_result   nvarchar(max)
set @l_xml_result   = ( select dbo.uspSMODatabaseBackup('sqlprod1vs') )
--set   @l_xml_result   = replace(@l_xml_result,'UTF-8','UTF-16');

declare @l_xml      xml
set @l_xml      = @l_xml_result

end
go

exec monitor_sqlbackupaudit

Msg 9402, Level 16, State 1, Procedure monitor_sqlbackupaudit, Line 15
XML parsing: line 1, character 38, unable to switch the encoding

1 Ответ

1 голос
/ 23 января 2011

Вы можете настроить свой веб-сервис для обработки UTF-16 вместо UTF-8 в разделе глобализации Web.config.Атрибуты requestEncoding и responseEncoding тега глобализации должны быть установлены в UTF-16.

<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>

должны быть преобразованы в

<globalization requestEncoding="utf-16" responseEncoding="utf-16"/>

Это изменение позволит веб-службе выводить UTF-16, но это также потребует, чтобы клиент сделал свой запрос в UTF-16.

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