Назад | Перейти на главную страницу

Развернуть веб-службу, отвечающую за подключение к SQL Server на Windows Server в IIS

В моей компании мы установили активный контроллер домена на сервере Windows Server 2008 и еще один сервер Windows для хранения наших файлов и установки TFS и SQL Server, и у нас есть несколько клиентских машин в одном домене.

У меня есть многослойное приложение Windows, один уровень - это проект веб-службы, включая «AppWebService.asmx». Веб-служба - это набор функций, которые читают и записывают в SQL Server, расположенный на сервере Windows 2012.

В качестве теста я опубликовал (Файловая система) проект веб-сервиса, взял выходные файлы и сохранил их в IIS на нашем сервере, затем установил приложение Windows на сервере, и оно хорошо работало с использованием опубликованного веб-сервиса.

Теперь я хочу установить приложение Windows на все компьютеры домена и заставить их использовать один и тот же веб-сервис, расположенный в IIS на нашем сервере, но я продолжаю получать следующую ошибку:

Конечная точка не слушала http: //localhost/App/AppWebService.asmx который мог принять сообщение. Часто это вызвано неправильным адресом или действием SOAP.

Хотя если на сервере я захожу на "http: //localhost/App/AppWebService.asmx"Я вижу методы, включенные в него.

Это мой App.config (в основном проекте приложения Windows):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="App.Properties.Settings.AppConnectionString"
            connectionString="Data Source=PRODUCTION;Initial Catalog=AppDB;User ID=ui;Password=mypassword"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="AppWebServiceSoap" maxReceivedMessageSize="2147483647"/>
            </basicHttpBinding>
        </bindings>
        <client>
        <!--<endpoint address="http://localhost:4550/AppWebService.asmx"
            binding="basicHttpBinding" bindingConfiguration="AppWebServiceSoap"
            contract="com.app.AppWebServiceSoap" name="AppWebServiceSoap" />-->
      <endpoint address="http://localhost/App/AppWebService.asmx"
            binding="basicHttpBinding" bindingConfiguration="AppWebServiceSoap"
            contract="com.app.AppWebServiceSoap" name="AppWebServiceSoap" />
    </client>
    </system.serviceModel>
</configuration>

А это Web.Config в проекте веб-сервиса:

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

Итак, что мне делать, чтобы мое приложение работало и могло получить доступ к веб-сервису в IIS с компьютеров домена, а также на сервере? (Все функции и роли IIS включены)

Localhost и есть локальный хост. Он работает при тестировании на самом сервере, потому что сервер подключается к себе через localhost. При тестировании с другой машины вам необходимо подключиться через IP-адрес или имя сервера, а не через localhost. При использовании localhost каждая машина будет пытаться подключиться к себе, что, конечно, не сработает.