【问题标题】:Hosting ASPX and WCF托管 ASPX 和 WCF
【发布时间】:2011-11-29 16:55:36
【问题描述】:

我搜索了很多托管WCF 的方法并发现它们可以工作,但是,在我的解决方案中我有WCF Service Project(它有一个web.config 和一些连接字符串)和一个ASPX.NET项目(它也有一个web.config),任何人都可以澄清我如何在网站上托管它们。

谢谢。

【问题讨论】:

    标签: asp.net web-hosting wcf-hosting


    【解决方案1】:

    您希望任何其他客户端访问此 WCF 服务吗?

    如果没有,只需在现有 Web 应用程序中保留一个 .svc 文件,并在需要时使用它。

    如果是,请将 WCF 项目作为网站托管在 IIS、控制台或 WAS 中,并从您的 aspx Web 应用程序中引用它。

    【讨论】:

    • 我希望 WCF 也可以为其他应用程序提供服务。现在,我正在一个免费主机上测试我的代码,它给了我一个子域并且只有 1 个 sql server db,在这种情况下我该如何实现呢?谢谢普拉文。
    • 在这种情况下,您可以将 wcf 服务作为网站托管在 IIS 上。然后任何 Web 应用程序都可以添加它的 Web 引用并使用它。
    • 因此,wcf 必须托管在另一个站点或子域中,以便可以容纳和引用多个 Web 配置。谢谢。
    • 是的。在 IIS 上将 WCF 作为不同站点托管将确保任何应用程序都可以使用它,无论是 Windows 还是使用 wcf web.config 中提供的不同端点的 Web 应用程序。
    【解决方案2】:

    对于托管 WCF 服务,您有以下选项:

    • WinForms 应用程序
    • 控制台应用程序
    • Windows 服务
    • 托管在 Internet 信息服务 (IIS) 上的 Web 应用程序 (ASP.NET)
    • IIS 7.0 中的 WCF 服务和 Windows Vista 上的 WAS 或 Windows Server 代码名称“Longhorn”

    See here for more information on hosting a WCF service.

    对于托管 Asp.Net 应用程序,我建议使用 IIS,see here for how。但是,使用 WSE 也可以将其作为 Windows 服务托管。 See here for how.

    【讨论】:

    • 谢谢。但是,它并没有解决我的问题或我的理解。
    【解决方案3】:

    很简单,您只需将“.svc”文件添加到您的 ASPX.net 项目中。例如服务1.svc

    然后将以下代码添加到文件中

    <%@ ServiceHost Language="C#" Service="WCFServiceProject.Main" %>
    

    WCFServiceProject.Main 是提供服务功能的类的完全限定命名空间和名称

    如果您还没有注册,您还需要在 IIS 中注册 svc 扩展以使其工作。并且不要忘记将 WCF 服务项目的引用添加到 aspx.net 项目中。

    如果您想动态创建服务,请查看我的问题以获取一些提示Creating wcf service within IIS in code

    只需重新阅读更新(编辑)的问题。您需要将连接详细信息从 WCF 服务项目复制到您的 asp.net 项目中。

    【讨论】:

    • 感谢基思提供的信息。但是,在构建 WCF 服务后,无法在已发布的服务器上编辑连接字符串,因为它是 DLL。根据您的建议,如果我将连接字符串添加到我的 Aspx 站点 Web 配置中,它不会那样工作,是吗?
    • 如果您的 WCF 项目是 ASPX 站点的一部分,则该站点的 web.config 将成为 WCF 项目的 web.config。 WCF 项目的配置文件被忽略。然后,您的 WCF 服务将读取 ASPX 项目中定义的连接字符串。
    猜你喜欢
    • 2011-07-10
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 2015-02-06
    • 2012-06-09
    • 1970-01-01
    相关资源
    最近更新 更多