6 / 6 / 2
Регистрация: 11.04.2011
Сообщений: 260
1

Доступ к wsdl я могу получить только на своем ПК

07.08.2012, 11:52. Показов 1762. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Короче добавляю ссылку на wsdl при помощи "добавить ссылку на службу". Оказывается доступ к ней я могу получить только на одном компе (естественно не моём ). Студию естественно на том компе никто мне поставить не даст. Мол пиши, а там скомпиленое проверяй.

Т.е. я так понял, что достучаться до этой службы вообще нереально?

Есть какие то мысли по этому поводу?
Заранее благодарю!)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2012, 11:52
Ответы с готовыми решениями:

Казус братья, не могу зайти в панель manager в своем сайте. Причина не только в том что я нуб
Если вкратце решил по изучать modx установил локальный сервер xamp (мне он нравится, прост в...

Не могу получить доступ к серверу
На windows 7 установлен SQL Express 2008 с этого компа все работает а вот с другого не могу...

Не могу получить доступ по ssh
Не знаю, как правильно сформулировать вопрос, но... Создал на чистой Ubuntu 16.04 ssh ключ...

Не могу получить доступ к папке
Здравствуйте,уважаемые форумчане! Возникла проблема: Я знаю,что файл у меня хранится в Temporary...

5
2734 / 2041 / 379
Регистрация: 22.07.2011
Сообщений: 7,731
07.08.2012, 15:32 2
Доступ к wsdl я могу получить только на своем ПК
Оказывается доступ к ней я могу получить только на одном компе (естественно не моём )
- так я и не понял где именно ?

По факту не важно. если есть wsdl то можно сгенерировать прокси с помощью тулзы
http://msdn.microsoft.com/en-u... .100).aspx - студия для этого не нужна.

так же можно написать клиента вручную. если разобраться с описанием сервиса
http://www.w3.org/TR/wsdl
1
6 / 6 / 2
Регистрация: 11.04.2011
Сообщений: 260
08.08.2012, 10:37  [ТС] 3
Пардон. Запрос можно осуществить только на чужом, специальном компе.

Писал вот такую программку:

1. Класс из которого я позже вызову метод

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
internal class WsProxy
    {
 
        [SecurityPermissionAttribute(SecurityAction.Demand, Unrestricted = true)]
 
        internal static object CallWebService(string webServiceAsmxUrl, string serviceName, string methodName, object[] args)
        {
 
            System.Net.WebClient client = new System.Net.WebClient();
 
            // Connect To the web service
 
            System.IO.Stream stream = client.OpenRead(webServiceAsmxUrl + "?wsdl");
 
            // Now read the WSDL file describing a service.
 
            ServiceDescription description = ServiceDescription.Read(stream);
 
            ///// LOAD THE DOM /////////
 
            // Initialize a service description importer.
 
            ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
 
            importer.ProtocolName = "Soap12"; // Use SOAP 1.2.
 
            importer.AddServiceDescription(description, null, null);
 
            // Generate a proxy client.
 
            importer.Style = ServiceDescriptionImportStyle.Client;
 
            // Generate properties to represent primitive values.
 
            importer.CodeGenerationOptions = System.Xml.Serialization.CodeGenerationOptions.GenerateProperties;
 
            // Initialize a Code-DOM tree into which we will import the service.
 
            CodeNamespace nmspace = new CodeNamespace();
 
            CodeCompileUnit unit1 = new CodeCompileUnit();
 
            unit1.Namespaces.Add(nmspace);
 
            // Import the service into the Code-DOM tree. This creates proxy code that uses the service.
 
            ServiceDescriptionImportWarnings warning = importer.Import(nmspace, unit1);
 
            if (warning == 0) // If zero then we are good to go
            {
 
                // Generate the proxy code
 
                CodeDomProvider provider1 = CodeDomProvider.CreateProvider("CSharp");
 
                // Compile the assembly proxy with the appropriate references
 
                string[] assemblyReferences = new string[5] { "System.dll", "System.Web.Services.dll", "System.Web.dll", "System.Xml.dll", "System.Data.dll" };
 
                CompilerParameters parms = new CompilerParameters(assemblyReferences);
 
                CompilerResults results = provider1.CompileAssemblyFromDom(parms, unit1);
 
                // Check For Errors
 
                if (results.Errors.Count > 0)
                {
 
                    foreach (CompilerError oops in results.Errors)
                    {
 
                        System.Diagnostics.Debug.WriteLine("========Compiler error============");
 
                        System.Diagnostics.Debug.WriteLine(oops.ErrorText);
 
                    }
 
                    throw new System.Exception("Compile Error Occured calling webservice. Check Debug ouput window.");
 
                }
 
                // Finally, Invoke the web service method
 
                object wsvcClass = results.CompiledAssembly.CreateInstance(serviceName);
 
                MethodInfo mi = wsvcClass.GetType().GetMethod(methodName);
 
                return mi.Invoke(wsvcClass, args);
 
            }
 
            else
            {
 
                return null;
 
            }
 
        }
 
    }

Вызываю метод:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
namespace wsdl_to_fb
{
    public partial class Form1 : Form
    {
        object[] a;
        public Form1()
        {
            InitializeComponent();
        }
        
 
        private void button1_Click(object sender, EventArgs e)
        {
            WsProxy.CallWebService("http://10.1.180.28:12545/AskvpDAS/Service/", "$pNameList", "Array()", a);
        }
    }
}
Работает только на одной машине. (только ей открыли доступ)
Чё с этим объектом дальше делать не понимаю (( куда мне данные выгрузить, если я их вообще получаю (
0
2734 / 2041 / 379
Регистрация: 22.07.2011
Сообщений: 7,731
08.08.2012, 12:43 4
куда мне данные выгрузить, если я их вообще получаю
метод возвращает результат типа object.

И вызывать динамическую компиляцию при каждом вызове метода, это мягко говоря...
1
6 / 6 / 2
Регистрация: 11.04.2011
Сообщений: 260
08.08.2012, 12:54  [ТС] 5
Т.е. метод не айс?
Мне тупо нужно получить какие то данные с галимой wsdl ссылки...

Ок ) Спасибо большое!)
0
2734 / 2041 / 379
Регистрация: 22.07.2011
Сообщений: 7,731
08.08.2012, 15:52 6
http://msdn.microsoft.com/ru-r... 85203.aspx - в довесок.
1
08.08.2012, 15:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2012, 15:52
Помогаю со студенческими работами здесь

не могу получить доступ к phpmyadmin
установил phpmyadmin на виртуальную федору сервер 22. с самой тачки w3m 127.0.0.1/phpmyadmin ...

Не могу получить доступ к винчестеру
Хочу установить семерку, не могу отредактировать жесткий диск. Запускаю установочный диск, а с него...

Как получить доступ принтерам только из определённым подсетям
Как получить доступ к принтерам только определённым подсетям? Желательно, без помощь CLI. Сейчас у...

ПК, к которому можно получить доступ только с USB ключом
Добрый день, уважаемые! Задался я идеей, запаролить свой ноутбук по максимуму. Моя ОС - win 8.1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru