Добавить ссылку на службу (WCF, VS2008) на внешнюю службу, используя прокси WCF - PullRequest
0 голосов
/ 05 ноября 2010

Я пользуюсь VS2008, .net 3.5.

Существует внешний веб-сервис (это реализация PHP, но не против реализации -.net, java, php, ...-).

В моем проекте csproj я хочу добавить ссылку на службу в WebService и хочу использовать WCF.

Когда я добавляю ссылку на службу в VS2008, создается прокси WCF.

Какие-либо передовые практики (шаблоны и практики) для добавления ссылки на службу (внешняя служба)?

Генератор прокси WCF (я думаю, что та же команда svcutil) генерирует исходный код, подобный этому. Возможно, будет интересно управлять сгенерированным кодом (ServiceContractAttribute Namespace = "http://192.168.50.63/WebService" использовать IP-адрес, а OperationContractAttribute (Action =" http://devservername/webservice/SmoBridge.php/login" использовать имя_сервера).

  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://192.168.50.63/WebService", ConfigurationName="ServiceEasyVista.WebServicePortType")]
public interface WebServicePortType {

    [System.ServiceModel.OperationContractAttribute(Action="http://devservername/webservice/SmoBridge.php/login", ReplyAction="*")]
    [System.ServiceModel.XmlSerializerFormatAttribute(Style=System.ServiceModel.OperationFormatStyle.Rpc, Use=System.ServiceModel.OperationFormatUse.Encoded)]
    [return: System.ServiceModel.MessageParameterAttribute(Name="return")]
    string login(string SESSION_ID, [System.ServiceModel.MessageParameterAttribute(Name="LOGIN")] string LOGIN1, string PASSWORD, string COMPANY_ACCOUNT);

Обновление:

рекомендации Эрвина по правильному закрытию неисправного канала WCF. http://bloggingabout.net/blogs/erwyn/archive/2006/12/09/WCF-Service-Proxy-Helper.aspx

Почему ClientBase Dispose должен выдавать сбойное состояние? (Или какая разница между закрытием и прерыванием?)

http://social.msdn.microsoft.com/forums/en-US/wcf/thread/b95b91c7-d498-446c-b38f-ef132989c154/

Ответы [ 2 ]

1 голос
/ 05 ноября 2010

Я не знаю, почему были бы какие-то конкретные рекомендации по добавлению ссылки.Тем не менее, команда «Обновить ссылку» в Visual Studio (щелчок правой кнопкой мыши на существующей ссылке на службу) иногда работает не слишком хорошо, поэтому проще использовать команду svcutil вручную и иметь * 1002.* файл в вашем решении, который обновляет ссылку на службу (svcutil - это то, что «Добавить ссылку на службу» использует за кулисами).

Кроме того, если служба, на которую вы ссылаетесь, возвращает массив, вы можетезаставить WCF автоматически превратить его в общий список (или другой тип) - это может упростить задачу.

1 голос
/ 05 ноября 2010

проверьте это:

http://www.sanity -free.com / 125 / php_webservices_and_csharp_dotnet_soap_clients.html

я думаю, что это сложная техника.

С уважением,

Мажар Карими

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