【问题标题】:Web Services on IIS7 Server for Website on Apache ServerIIS7 服务器上的 Web 服务,用于 Apache 服务器上的网站
【发布时间】:2014-11-06 16:02:32
【问题描述】:

我们这里有几台服务器。

我们的大多数 Web 服务器是运行 Apache 和 MySQL 的 Windows 2008 R2 机器,但我们也有运行 SQL Server 2008 数据库的 IIS7 Web 服务器

我在 Web 报告中使用的数据部分位于 IIS7 Web 服务器 的 SQL 数据库中,部分位于 Apache Web 服务器 的 MySQL 数据库中。

一年多前,当我从 Windows 2000 服务器升级工作时,我被介绍到 IIS7 中的 Web 服务。

我喜欢创建 Web 服务,并且我想这是要走的路。我在 Visual Studio 2010 中看到的所有示例(我们这里有)只显示了如何使用 .Net 3.5 项目执行此操作。如果有 .Net 4.0 的东西,它必须被称为 Web 服务以外的东西。

我想编写一个应用程序,它从 Apache Web 服务器上的 MySQL 数据库中读取数据,并将其与 IIS7 Web 服务器上的 SQL 数据库中的数据相结合.

然后,我需要能够从 Apache Web 服务器 上用 PHP 编写的网站读取该数据。

那么,我在问什么?我想如何继续。

  • 我应该在 Visual Studio 2010 中创建什么样的项目? 从每个数据库中读取 1 个数据表很容易,但我需要知道如何最好地使这些数据可访问。
  • 我应该如何通过 PHP 访问这些数据?

我会遇到哪些障碍可以防止这种情况发生?

我应该研究任何特定类型的服务吗?我不确定是否可以通过 PHP 代码使用 Web 服务。

【问题讨论】:

  • 投反对票并投票结束,不予置评。跛脚。

标签: php mysql sql-server apache visual-studio-2010


【解决方案1】:

必须正确配置 web.config 文件,PHP's basic SOAP class 才能从 Microsoft 的 WCF 中读取。其实好像需要binding="basicHttpBinding"

这是我所拥有的:

<system.serviceModel>
    <services>
        <service name="wcfLibrary.Dwgs" behaviorConfiguration="wcfLibrary.DwgsBehavior">
            <endpoint address="" binding="basicHttpBinding" contract="wcfLibrary.IDwgs">
                <identity>
                    <dns value="localhost"/>
                </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
                <baseAddresses>
                    <add baseAddress="http://localhost/Dwg/" />
                </baseAddresses>
            </host>
        </service>
    </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="wcfLibrary.DwgsBehavior">
        <serviceMetadata httpGetEnabled="true"/>
        <serviceDebug includeExceptionDetailInFaults="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <standardEndpoints>
        <webHttpEndpoint>
            <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"></standardEndpoint>
        </webHttpEndpoint>
    </standardEndpoints>
</system.serviceModel>

我在 WCF 项目中缺少的一个重要元素是 WebGet - 因为我根本无法安装对我的项目的引用。

我在 MSDN 的博客 Getting Started with WCF WebHttp Services in .NET 4 上发现 VS2010 项目必须使用 完整的 .NET 4 框架,而不是像我使用的客户端配置文件。

完成此操作并重新启动项目后,我就可以从参考列表中添加 System.ServiceModel.Web

关于&lt;standardEndpoints&gt; 部分的Web.config 部分来自CodeProject:Create and Consume RESTFul Service in .NET Framework 4.0 中的第8 步。

这个答案正在进行中。当我了解更多时,我会添加它。

【讨论】:

    猜你喜欢
    • 2016-04-04
    • 2014-04-22
    • 2014-12-22
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多