Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Помогите развернуть WCF-сервис на IIS вручную / 8 сообщений из 8, страница 1 из 1
19.04.2018, 15:10
    #39633243
AlexV1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите развернуть WCF-сервис на IIS вручную
Добрый день!

Помогите развернуть WCF-сервис, написанный на C#.NET в Visual Studio 2017 на сервере IIS.
Права админские есть. IIS находится на соседнем ПК в моей же квартире.

Хочу научиться копировать файлы WCF сервиса в папку IIS вручную (без функции Publish в Visual Studio), чтобы из браузера можно было запросить WSDL.
Ранее никогда этого не делал, IIS не настраивал.

В Default Web Site нужно создавать подпапку (виртуальный каталог) или рядом с Default Web Site создать свой сайт? Хотя у меня же не сайт, а WCF-сервис.
...
Рейтинг: 0 / 0
24.04.2018, 11:02
    #39635187
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите развернуть WCF-сервис на IIS вручную
...
Рейтинг: 0 / 0
27.04.2018, 19:12
    #39637706
AlexV1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите развернуть WCF-сервис на IIS вручную
Добрый день,

Пока через Publish в VS 2017 опубликовал в IIS на ПК с именем msi и OS Windows 7
Ссылка поучилась вот такая (через браузер успешно открывается локально с этого же ПК msi)
http://msi/FileTransferService/WcfServiceLibrary1.FileTransferService.svc

Но есть одно НО...

Накидал отдельное Windows Forms App, добавил в него Service Reference и вызвал метод сервиса.
Выдало
Прослушивание на http://msi/FileTransferService/WcfServiceLibrary1.FileTransferService.svc не выполняла ни одна конечная точка, которая могла бы принять сообщение. Среди прочих причин это могло быть вызвано неправильным адресом или действием SOAP.

Но если я ничего не меняю и по F5 запускаю из студии, запущенной с правами администратора, то все OK, вызов метода идет успешно. В вот после переноса в IIS ругается на endpoint

В чем может быть причина?
Может ли WCF-траффик между браузером и IIS локироваться?
А может для IIS нужно еще какую endpoint создать или же поднастроить чего в app.config'е клиента?

Конфиг WcfServiceLibrary1

Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
  </appSettings>
  
  <system.web>    
    <compilation debug="true" />    
  </system.web>
  
  <system.serviceModel>
      
    <bindings>
      <basicHttpBinding>

        <binding name="myHttpBinding">
		<security mode="None">
		</security>
	</binding>

        <binding name="httpLargeMessageStream" maxReceivedMessageSize="2147483647" transferMode="Streamed" messageEncoding="Mtom">
             <!--
               <security mode="Transport">
						   <transport clientCredentialType="None" proxyCredentialType="None" />
					   </security>
             -->
        </binding>
          
      </basicHttpBinding>
    </bindings>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" >

       <baseAddressPrefixFilters>
          <add prefix="http://msi"/>          
       </baseAddressPrefixFilters>
      
    </serviceHostingEnvironment>
      
    <services>
      <service behaviorConfiguration="serviceBehavior" name="WcfServiceLibrary1.FileTransferService">

        <endpoint address="" name="basicHttpStream" binding="basicHttpBinding" bindingConfiguration="httpLargeMessageStream" contract="WcfServiceLibrary1.IFileTransferService"/>        
       
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

         <host>
           <baseAddresses>
              <add baseAddress="http://msi/FileTransferService/"/>
           </baseAddresses>
         </host>
    
      </service>
    </services>
    
    <behaviors>
      <serviceBehaviors>

        <behavior name="serviceBehavior">          
            <serviceMetadata httpGetEnabled="true" httpsGetEnabled="True"/>
            <serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true"/>
            <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
        </behavior>
        
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>

<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>
...
Рейтинг: 0 / 0
28.04.2018, 03:04
    #39637790
AlexV1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите развернуть WCF-сервис на IIS вручную
В InnerException.Message при этом на клиента приходит
Удаленный сервер возвратил ошибку: (404) Не найден.
...
Рейтинг: 0 / 0
28.04.2018, 03:58
    #39637793
AlexV1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите развернуть WCF-сервис на IIS вручную
Что-то мне подсказывает, что я напутал с
Код: xml
1.
baseAddresses

, но не пойму что
...
Рейтинг: 0 / 0
28.04.2018, 05:55
    #39637802
AlexV1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите развернуть WCF-сервис на IIS вручную
Важная деталь, которую сегодня обнаружил.

Метод string GetData , сгенерированный студией, после публикации WCF в IIS работает на ура!
А вот мой метод UploadFile, который направляет потоковые данные (Stream) на сервер отваливается с ошибкой
Прослушивание на http://msi/FileTransferService/WcfServiceLibrary1.FileTransferService.svc не выполняла ни одна конечная точка, которая могла бы принять сообщение. Среди прочих причин это могло быть вызвано неправильным адресом или действием SOAP.
В InnerException.Message при этом на клиента приходит
Удаленный сервер возвратил ошибку: (404) Не найден.

Подозреваю, что метод string GetData(int) и метод FileUploadReturnMessage UploadFile(FileUploadMessage request) или обрабатываются в IIS разными точками и проблема в точке обработки потоковых данных или в IIS где то нужно разрешить Stream данные.

Есть идеи?
...
Рейтинг: 0 / 0
29.04.2018, 11:22
    #39638269
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите развернуть WCF-сервис на IIS вручную
AlexV1Важная деталь, которую сегодня обнаружил.

Метод string GetData , сгенерированный студией, после публикации WCF в IIS работает на ура!
А вот мой метод UploadFile, который направляет потоковые данные (Stream) на сервер отваливается с ошибкой
Прослушивание на http://msi/FileTransferService/WcfServiceLibrary1.FileTransferService.svc не выполняла ни одна конечная точка, которая могла бы принять сообщение. Среди прочих причин это могло быть вызвано неправильным адресом или действием SOAP.
В InnerException.Message при этом на клиента приходит
Удаленный сервер возвратил ошибку: (404) Не найден.

Подозреваю, что метод string GetData(int) и метод FileUploadReturnMessage UploadFile(FileUploadMessage request) или обрабатываются в IIS разными точками и проблема в точке обработки потоковых данных или в IIS где то нужно разрешить Stream данные.

Есть идеи?

Для начала решите эту фигню
Удаленный сервер возвратил ошибку: (404) Не найден.

а потом уже будете фантазировать далее.
...
Рейтинг: 0 / 0
06.05.2018, 16:58
    #39640998
AlexV1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите развернуть WCF-сервис на IIS вручную
Спасибо всем за помощь.

Одной из проблем было то, что не хватало прав на мою папку в IIS для IIS_IUSERS
Дал права и заработало.
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Помогите развернуть WCF-сервис на IIS вручную / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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