powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Web WCF Service
10 сообщений из 10, страница 1 из 1
Web WCF Service
    #37216152
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В продолжении топика Как описать массив... .
Создал Web WCF Service который будет отдавать массив записей.
Тестирование службы вроде все ок.
Создал консольного клиента, чтобы посмотреть полученный массив. Но выдает ошибку.
The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Negotiate,NTLM'.
Запрос HTTP несанкционирован с опознавательной схемой 'Anonymous'. Опознавательный заголовок, полученный от сервера был 'Negotiate,NTLM'.
Посмотрел прилагающуюся ссылку Troubleshooting Exceptions: System.ServiceModel.Security.MessageSecurityException
. Отключение NTLM Authentication на Start Option у меня вообще нет (VS2010).
Как это побороть?
...
Рейтинг: 0 / 0
Web WCF Service
    #37216161
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Web.config:
Код: plaintext
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.
<?xml version="1.0"?>
<configuration>
	<system.web>
		<compilation debug="true" targetFramework="4.0"/>
	</system.web>
	<system.serviceModel>
    <behaviors>
			<serviceBehaviors>
				<behavior>
					<!-- Чтобы избежать раскрытия информации метаданных, установите следующее 
          значение в false и удалите конечную точку метаданных перед развертыванием -->
					<serviceMetadata httpGetEnabled="true"/>
					<!-- Для получения деталей исключения при сбоях в целях отладки
          установите следующее значение в true.
          Перед развертыванием установите его снова в false,
          чтобы скрыть информацию об исключении -->
					<serviceDebug includeExceptionDetailInFaults="true"/>
				</behavior>
			</serviceBehaviors>
		</behaviors>
		<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
	</system.serviceModel>
	<system.webServer>
		<modules runAllManagedModulesForAllRequests="true"/>
	</system.webServer>
	<connectionStrings>
		<add name="ASU_DATA" connectionString="Data Source=MS2008B;Initial Catalog=ASU_MKVI_DATA_tester2;Password=Qwerty1;User ID=sa"/>
	</connectionStrings>
</configuration>
...
Рейтинг: 0 / 0
Web WCF Service
    #37217655
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее я не тот Config отразил.
Надо показать app.config клиента. Вот он:
Код: plaintext
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.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IMKVIService" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost/WCFServiceMyProba00/Service.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMKVIService"
                contract="ServiceReference.IMKVIService" name="BasicHttpBinding_IMKVIService" />
        </client>
    </system.serviceModel>
</configuration>
И чувствую что дело тут в:
Код: plaintext
1.
2.
3.
<security mode="None">
   <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
   <message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
У нас все в домене. И моя машина тоже. Но я ведь являюсь на своем компе администратором. Скорее всего дело в правильном указании <security>.
Но как?
...
Рейтинг: 0 / 0
Web WCF Service
    #37217699
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тихо сам с собою...
Все... Разобрался...
...
Рейтинг: 0 / 0
Web WCF Service
    #37217741
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СА,

Ну а рассказать в чем дело для тех, кто будет искать ответ на этот же вопрос?
...
Рейтинг: 0 / 0
Web WCF Service
    #37217762
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как я и предполагал, дело в <security>
Надо заменить <security> на:
Код: plaintext
1.
2.
3.
<security mode="TransportCredentialOnly">
  <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
  <message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
...
Рейтинг: 0 / 0
Web WCF Service
    #37217944
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу продолжить топик...
И опять затруднения... Поэтому прошу помощи...
Задача: Составить WebWCFService, который возвращает теже записи, что и в предыдущем примере, но в XML-файле.
Вроде и задача проще, но что-то недопонимание...
И так
интерфейс сервиса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Xml;
using System.Xml.Linq;

[ServiceContract]
public interface IMKVIService
{
  [OperationContract]
  XDocument GetUtvPlanNIOKR();
}
Класс
Код: plaintext
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.
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using NS_ASU_MKVI;

public class MKVIService : IMKVIService
{
  public XDocument GetUtvPlanNIOKR()
  {
    XDocument doc = new XDocument();
    XElement root = new XElement("ROOT");
    XElement record = null;
    XElement node = null;

    // Сначала получим DataTable из базы данных.
    string sql = "SELECT [N_ID] as [N_ID]," +
                        "YEAR([D_DATE]) as [GD]," +
                        "[S_NAME] as [S_NAME]," +
                        "[F_COST] as [F_COST]," +
                        "CONVERT(varchar(10),[D_DATE_BEG],104) as [S_DATE_BEG]," +
                        "CONVERT(varchar(10),[D_DATE_END],104) as [S_DATE_END] " +
                  "FROM [T_NIOKR] " +
                  "WHERE [N_ID_STATE] = 605 " +
                    "and [N_ID_SOST] = 407 " +
                    "and [B_CLOSED] = 0 " +
                    "and [B_OLD] = 0 " +
                  "ORDER BY [N_ID]";
    DataTable dt = DatabaseManager.GetTableByQwery(sql);
    DataTableReader reader = dt.CreateDataReader();
    while (reader.Read())
    {
      record = new XElement("GK");
      node = new XElement("ID", reader["N_ID"].ToString());
      record.Add(node);
      node = new XElement("YEAR", reader["GD"].ToString());
      record.Add(node);
      node = new XElement("NAME", reader["S_NAME"].ToString());
      record.Add(node);
      node = new XElement("COST", reader["F_COST"].ToString());
      record.Add(node);
      node = new XElement("SEDATE", reader["S_DATE_BEG"].ToString());
      record.Add(node);
      node = new XElement("EEDATE", reader["S_DATE_END"].ToString());
      record.Add(node);
      root.Add(record);
    }
    doc.Add(root);
    return doc;
  }
}
Но при запуске сервиса выдает ошибку:
The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.
Чувствую, что в идеологии дело. Но что неправильного???
...
Рейтинг: 0 / 0
Web WCF Service
    #37218013
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего нельзя использовать System.Xml.Linq.XDocument.
Т.е. сосотавлять XML документ надо не так...
...
Рейтинг: 0 / 0
Web WCF Service
    #37218139
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тихо сам с собою...
Все... Разобрался...
...
Рейтинг: 0 / 0
Web WCF Service
    #37218300
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня заинтересовал вопрос:
Type 'System.Xml.Linq.XDeclaration' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute.
Почему?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Web WCF Service
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]