2010-11-05 2 views
0

Я использую VS2008, .net 3.5.Добавить ссылку на службу (WCF, VS2008) на внешнюю службу с использованием прокси WCF

Существует внешняя веб-служба (это реализация 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); 

Update:..

рекомендация Erwyn по поводу правильного закрытия неисправной 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/

ответ

1

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

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

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

С уважением,

Mazhar Карего

+1

Но насколько я знаю, использование опции «Добавить веб-ссылку» не использует WCF. –

+0

Пожалуйста, прочитайте полную статью, мы также используем ту же технику в этом случае. – 2010-11-05 09:42:01

+0

thx, еще одна рекомендация, использующая .NET для любой реализации веб-сервиса (не только php, тоже .net WCF services, java ...) – Kiquenet

1

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

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

+0

VS использует генератор прокси WCF (Custom Tool), возможно, будет очень интересно управлять кодом WCF Proxy и другими аспектами. – Kiquenet

Смежные вопросы