在我的公司中,我们在 windows server 2008 上设置了一个活动域控制器,并在另一个 windows 服务器上存储我们的文件并安装 TFS 和 SQL Server,我们在一个域上有几台客户端计算机。
我有一个多层 Windows 应用程序,一层是一个 Web 服务项目,包括“AppWebService.asmx”。Web 服务是一组读取/写入位于 Windows Server 2012 上的 SQL Server 的函数。
作为测试,我发布(文件系统)webservice项目,获取输出文件并将它们存储在我们服务器上的IIS中,然后在服务器上安装windows应用程序,它使用发布的webservice运行良好。
现在我想在所有域机器上安装 windows 应用程序并让它们使用位于我们服务器上 IIS 中的相同 web 服务,但我不断收到以下错误:
在 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>
这是 webservice 项目中的 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 上的 web 服务,以及它能够在服务器上执行它呢?(IIS 功能和角色都已启用)
Localhost 就是本地主机。它在服务器本身上测试它时工作,因为服务器通过 localhost 连接到自身。从另一台机器测试它时,您需要通过服务器 IP 地址或名称进行连接,而不是 localhost。当使用 localhost 时,每台机器都会尝试连接到自己,这当然是行不通的。