Конвертировать файл WCF .svc в файл .asmx - PullRequest
1 голос
/ 16 февраля 2009

У меня есть служба WCF. У меня есть внешнее программное обеспечение, которое может читать только файлы .asmx . Можно ли преобразовать мой файл .svc в соответствующий файл .asmx ?

Ответы [ 5 ]

2 голосов
/ 18 декабря 2014

Зачем конвертировать, сохраняйте как wcf (.svc), так и веб-сервис (.asmx) просто следуйте инструкциям.

  1. перейдите в ваш проект WCF, щелкните правой кнопкой мыши и добавьте новый элемент, выберите файл веб-службы (.asmx), разверните этот новый файл, удалите внутренний файл и просто сохраните файл .asmx.
  2. откройте тот файл .asmx, который вы найдете <%@ WebService Language="C#" Debug="true" Class="{full name of web service class}" %>

Заменить на

<%@ WebService Language="C#" Debug="true" Class="full name of wcf class(.cs file not interface)" %>
  1. Последний шаг: добавить контракт на обслуживание, привязку веб-службы и привязки веб-службы к интерфейсу, как описано ниже

    [ServiceContract (Namespace = "namespacename")] [WebService (Name = "имя класса wcf")] [WebServiceBinding (Name = "имя класса wcf", ConformsTo = WsiProfiles.BasicProfile1_1, EmitConformanceClaims = true)]

, а также добавьте атрибут веб-метода в каждое объявление метода вашего интерфейса.

вот и все, теперь вы можете выставить файл файл .asmx для клиентов веб-служб .svc для клиентов WCF

спасибо

2 голосов
/ 17 февраля 2009

«Программное обеспечение, которое только читает файлы .asmx» не имеет смысла. Ни одно программное обеспечение не читает ни файлы .asmx, ни файлы .svc - оба типа интерпретируются на сервере и никогда не возвращаются клиенту.

Я думаю, вам нужно более глубоко изучить, что на самом деле хочет это внешнее программное обеспечение. Это было бы совершенно умственно, если бы он заботился о типе файла в URL!

2 голосов
/ 16 февраля 2009

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

Таким образом, ваше внешнее программное обеспечение может вызывать службу asmx, но и все новое может использовать службу wcf. Таким образом, вы можете хранить логику в одном месте, но оба выигрывают от обновлений и т. Д.

Надеюсь, это поможет.

1 голос
/ 29 августа 2010

Если услуга небольшая, это не очень сложно.

Можно украсить класс как атрибутами WCF, так и ASMX. Затем обратитесь к классу в файле ASMX и файле WCF.

1 голос
/ 02 июля 2009

Я предполагаю, что внешнее программное обеспечение фактически читает WSDL, сгенерированный файлом asmx, и не поддерживает выставленные протоколы. Определенно проверьте, какой уровень поддержки SOAP поддерживает это программное обеспечение, и соответствующим образом настройте службу wcf.

...